-
Notifications
You must be signed in to change notification settings - Fork 0
feat: 2回目以降のチャットdesignを変更 #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
ef06437
cc03b04
a167608
9f48a34
0b7b3ae
c4df6ef
9379df4
c884648
38e80af
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| """add device_type to iterations | ||
|
|
||
| Revision ID: d4e5f6g7h8i9 | ||
| Revises: c3d4e5f6g7h8 | ||
| Create Date: 2026-03-07 12:00:00.000000 | ||
|
|
||
| """ | ||
| from typing import Sequence, Union | ||
|
|
||
| from alembic import op | ||
| import sqlalchemy as sa | ||
|
|
||
|
|
||
| # revision identifiers, used by Alembic. | ||
| revision: str = "d4e5f6g7h8i9" | ||
| down_revision: Union[str, None] = "c3d4e5f6g7h8" | ||
| branch_labels: Union[str, Sequence[str], None] = None | ||
| depends_on: Union[str, Sequence[str], None] = None | ||
|
|
||
|
|
||
| def upgrade() -> None: | ||
| op.add_column("iterations", sa.Column("device_type", sa.String(length=20), nullable=True)) | ||
|
|
||
|
|
||
| def downgrade() -> None: | ||
| op.drop_column("iterations", "device_type") |
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -20,11 +20,11 @@ | |||||||||||||
| PLAYWRIGHT_MCP_SERVERS = { | ||||||||||||||
| "playwright": { | ||||||||||||||
| "command": "npx", | ||||||||||||||
| "args": ["@playwright/mcp@latest", "--headless", "--browser", "chromium"], | ||||||||||||||
| "args": ["@playwright/mcp@0.0.68", "--headless", "--browser", "chromium", "--viewport-size", "1280x800"], | ||||||||||||||
| }, | ||||||||||||||
| "playwright_mobile": { | ||||||||||||||
| "command": "npx", | ||||||||||||||
| "args": ["@playwright/mcp@latest", "--headless", "--browser", "chromium", "--device", "iPhone 15"], | ||||||||||||||
| "args": ["@playwright/mcp@0.0.68", "--headless", "--browser", "chromium", "--device", "iPhone 15"], | ||||||||||||||
| }, | ||||||||||||||
| } | ||||||||||||||
|
|
||||||||||||||
|
|
@@ -68,8 +68,6 @@ def _emit_tool_detail(phase: str, tool_name: str, raw_input: str) -> None: | |||||||||||||
| elif tool_name == "Bash": | ||||||||||||||
| cmd = params.get("command", "?") | ||||||||||||||
| emit_log(phase, f"Running: {cmd[:100]}") | ||||||||||||||
| elif tool_name in ("Glob", "Grep"): | ||||||||||||||
| emit_log(phase, f"Searching: {params.get('pattern', '?')}") | ||||||||||||||
|
|
||||||||||||||
|
|
||||||||||||||
| def get_s3_client(): | ||||||||||||||
|
|
@@ -153,7 +151,10 @@ async def _process_messages(client: ClaudeSDKClient, phase: str) -> None: | |||||||||||||
| if isinstance(msg, AssistantMessage): | ||||||||||||||
| for block in msg.content: | ||||||||||||||
| if isinstance(block, TextBlock): | ||||||||||||||
| emit_log(phase, block.text[:200], detail=block.text) | ||||||||||||||
| text = block.text.strip() | ||||||||||||||
| if text.startswith("Browser") or text.startswith("Searching"): | ||||||||||||||
| continue | ||||||||||||||
| emit_log(phase, text[:200], detail=block.text) | ||||||||||||||
| elif isinstance(block, ToolUseBlock): | ||||||||||||||
| _emit_tool_detail(phase, block.name, json.dumps(block.input)) | ||||||||||||||
|
|
||||||||||||||
|
|
@@ -369,7 +370,10 @@ async def generate_proposals( | |||||||||||||
| if isinstance(msg, AssistantMessage): | ||||||||||||||
| for block in msg.content: | ||||||||||||||
| if isinstance(block, TextBlock): | ||||||||||||||
| emit_log("analyzing", block.text[:200], detail=block.text) | ||||||||||||||
| text = block.text.strip() | ||||||||||||||
| if text.startswith("Browser") or text.startswith("Searching"): | ||||||||||||||
| continue | ||||||||||||||
| emit_log("analyzing", text[:200], detail=block.text) | ||||||||||||||
|
Comment on lines
+374
to
+376
|
||||||||||||||
| if text.startswith("Browser") or text.startswith("Searching"): | |
| continue | |
| emit_log("analyzing", text[:200], detail=block.text) | |
| suppress_log = text.startswith("Browser") or text.startswith("Searching") | |
| if not suppress_log: | |
| emit_log("analyzing", text[:200], detail=block.text) |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -20,11 +20,11 @@ | |||||
| PLAYWRIGHT_MCP_SERVERS = { | ||||||
| "playwright": { | ||||||
| "command": "npx", | ||||||
| "args": ["@playwright/mcp@latest", "--headless", "--browser", "chromium"], | ||||||
| "args": ["@playwright/mcp@0.0.68", "--headless", "--browser", "chromium", "--viewport-size", "1280x800"], | ||||||
| }, | ||||||
| "playwright_mobile": { | ||||||
| "command": "npx", | ||||||
| "args": ["@playwright/mcp@latest", "--headless", "--browser", "chromium", "--device", "iPhone 15"], | ||||||
| "args": ["@playwright/mcp@0.0.68", "--headless", "--browser", "chromium", "--device", "iPhone 15"], | ||||||
| }, | ||||||
| } | ||||||
|
|
||||||
|
|
@@ -68,8 +68,6 @@ def _emit_tool_detail(phase: str, tool_name: str, raw_input: str) -> None: | |||||
| elif tool_name == "Bash": | ||||||
| cmd = params.get("command", "?") | ||||||
| emit_log(phase, f"Running: {cmd[:100]}") | ||||||
| elif tool_name in ("Glob", "Grep"): | ||||||
| emit_log(phase, f"Searching: {params.get('pattern', '?')}") | ||||||
|
|
||||||
|
|
||||||
| def get_s3_client(): | ||||||
|
|
@@ -174,7 +172,10 @@ async def implement_changes(repo_dir: str, proposal_plan: str) -> None: | |||||
| if isinstance(msg, AssistantMessage): | ||||||
| for block in msg.content: | ||||||
| if isinstance(block, TextBlock): | ||||||
| emit_log("implementing", block.text[:200], detail=block.text) | ||||||
| text = block.text.strip() | ||||||
| if text.startswith("Browser") or text.startswith("Searching"): | ||||||
| continue | ||||||
| emit_log("implementing", text[:200], detail=block.text) | ||||||
|
Comment on lines
+175
to
+178
|
||||||
| elif isinstance(block, ToolUseBlock): | ||||||
| _emit_tool_detail("implementing", block.name, json.dumps(block.input)) | ||||||
|
|
||||||
|
|
@@ -207,7 +208,10 @@ async def _process_messages(client: ClaudeSDKClient, phase: str) -> None: | |||||
| if isinstance(msg, AssistantMessage): | ||||||
| for block in msg.content: | ||||||
| if isinstance(block, TextBlock): | ||||||
| emit_log(phase, block.text[:200], detail=block.text) | ||||||
| text = block.text.strip() | ||||||
| if text.startswith("Browser") or text.startswith("Searching"): | ||||||
|
||||||
| if text.startswith("Browser") or text.startswith("Searching"): | |
| if text.startswith("Browser"): |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -47,8 +47,9 @@ RUN apt-get update && apt-get install -y \ | |||||
|
|
||||||
| WORKDIR /workspace | ||||||
|
|
||||||
| # Install Playwright and Chromium (without --with-deps since deps are installed above) | ||||||
| RUN npm install -g playwright@1.49.0 @playwright/mcp@latest && \ | ||||||
| # Install Playwright MCP with pinned version and its bundled Chromium | ||||||
| RUN npm install -g @playwright/mcp@0.0.68 && \ | ||||||
| cd /usr/lib/node_modules/@playwright/mcp && \ | ||||||
|
||||||
| cd /usr/lib/node_modules/@playwright/mcp && \ | |
| cd "$(npm root -g)"/@playwright/mcp && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The text filter
text.startswith("Searching")may suppress meaningful LLM output that genuinely begins with "Searching", such as "Searching for the relevant component..." or other contextual analysis messages from Claude. Since theelif tool_name in ("Glob", "Grep"): emit_log(...)branch was already removed from_emit_tool_detail, the "Searching: {pattern}" log lines from that branch are already gone. The additional string-prefix filter in the TextBlock loop is overly broad and could silently drop real diagnostic information from Claude's reasoning output.Consider using a more targeted condition, such as checking for the exact phrases generated by MCP tool output (e.g., checking for "Browser action" patterns using a more specific prefix or regex) instead of the broad
startswith("Searching").