Closed
Conversation
Phase 0: Adapter Pattern Interface
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…e JSONL interference - getProjectDirPath now validates cwd/workspace exists before returning (returns null if not) - Extract isRelevantToWorkspace() helper to check session_meta.cwd in JSONL files - Apply workspace filtering during ensureProjectScan initial seed (previously seeded ALL files) - Deduplicate workspace check in scanForNewJsonlFiles using shared helper Fixes PR #2 review comment about cross-workspace agent-to-file mapping corruption when multiple VS Code windows share the same ~/.codex/sessions/ directory. Amp-Thread-ID: https://ampcode.com/threads/T-019cfe31-cba5-76c0-8ed6-1c0caf42519b Co-authored-by: Amp <amp@ampcode.com>
…nused constant - Add CODEX_DIR_NAME, CODEX_SESSIONS_DIR_NAME, CODEX_SESSION_COMMAND to constants.ts - Replace inline '.codex', 'sessions', 'codex --session-id' in agentManager.ts - Remove unused TERMINAL_NAME_PREFIX_CLAUDE constant Addresses PR #2 review comments from Devin, Gemini, and CodeRabbit about inline magic strings and unused constants. Amp-Thread-ID: https://ampcode.com/threads/T-019cfe31-cba5-76c0-8ed6-1c0caf42519b Co-authored-by: Amp <amp@ampcode.com>
Phase 1: Paths and Terminal commands
Fix/remove unused imports
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…imations Refactor runtime adapters and improve Codex activity mapping
Phase A — Click/Selection flow normalization: - Changed handleClick to dispatch agentSelected as local window event instead of posting to vscode extension (selection is webview-internal) - Terminal focus sync from onDidChangeActiveTerminal still works Phase B — Tool history preservation: - Added TOOL_HISTORY_MAX_SIZE (20) constant - Added agentToolHistory and subagentToolHistory state - On agentToolDone/subagentToolDone: completed tools appended to history - On agentToolsClear: only active tools cleared, history preserved - On agentClosed: both active tools and history cleaned up - ToolOverlay merges past history with active tools (shows latest 5) - DebugView merges history for full timeline view Amp-Thread-ID: https://ampcode.com/threads/T-019d045f-1fa1-74ee-8425-ef53073db9ac Co-authored-by: Amp <amp@ampcode.com>
feat: add agent visibility inspector and timeline
Phase C — Propagate heuristic metadata to webview: - agentToolPermission handler now reads source/inferred/confidence from extension message and sets them on affected ToolActivity items - subagentToolPermission handler does the same for sub-agent tools - Permission tools marked with source='heuristic', inferred=true, confidence='low' when originating from timer-based detection Phase D (partial) — Inspector heuristic display: - Status line shows '(heuristic)' suffix when status is inferred - Permission line shows '(estimated)' when tool permission is inferred - Heuristic-sourced tools show 'Auto (estimated)' label Amp-Thread-ID: https://ampcode.com/threads/T-019d045f-1fa1-74ee-8425-ef53073db9ac Co-authored-by: Amp <amp@ampcode.com>
…rface feat: surface heuristic confidence in tool activity
…y styles Address PR review comments: update AgentLabels and DebugView overlays to use 2px solid borders and 2px 2px 0px #0a0a14 hard offset shadows per the pixel art aesthetic guidelines. Amp-Thread-ID: https://ampcode.com/threads/T-019d0ceb-a3cd-7758-83bb-37642e596fda Co-authored-by: Amp <amp@ampcode.com>
Sub-agent work was being lost when live characters were cleared, which made the inspector and debug rail forget the user's recent context. This change keeps persistent sub-agent descriptors alongside live characters and separates debug selection from terminal focus so browsing the office no longer steals terminal state. Constraint: Vite is running on the available Node 20.18.3 runtime, so build verification includes the toolchain warning and the repo-level typecheck caveat below. Rejected: Keep rendering only live sub-agent characters | would keep losing history after clear Confidence: high Scope-risk: moderate Directive: Keep live character lifecycle separate from persistent descriptor/history state; do not reintroduce focus on selection clicks Tested: lsp diagnostics on modified files; webview-ui npm test; webview-ui npm run build; root npm run lint Not-tested: root npm run check-types (existing repo-level DOM-lib errors remain)
- Replace inline #0a0a14 boxShadow with var(--pixel-shadow) in AgentLabels - Extract hardcoded zIndex 42 to AGENT_VIS_LABEL_Z constant - Add boxSizing: border-box to RowLabel sharedStyle in DebugView - Upgrade ToolOverlay action buttons to 2px borders with pixel shadow Amp-Thread-ID: https://ampcode.com/threads/T-019d0d0e-8ed1-778f-8b0f-62f06745b6d8 Co-authored-by: Amp <amp@ampcode.com>
- DebugView: add borderRadius: 0 + boxShadow to all 5 overlay elements - AgentLabels: move z-index to --pixel-agent-label-z CSS variable - useExtensionMessages: filter subagentCharacters on clear instead of marking inactive - useExtensionMessages: cap subagentDescriptors to TOOL_HISTORY_MAX_SIZE per agent - ToolOverlay: use responsive width min(360px, calc(100% - 24px)) Amp-Thread-ID: https://ampcode.com/threads/T-019d0d0e-8ed1-778f-8b0f-62f06745b6d8 Co-authored-by: Amp <amp@ampcode.com>
…rface feat: upgrade inspector and debug timeline rails
Vite 8 is already in use, so the practical fix is to make the repo and docs require a Node version that satisfies Vite instead of leaving contributors on an older 22.x floor. The version manager pin, package engines, and setup docs now agree on Node 22.12.0+. Constraint: Vite 8 requires Node 20.19+ or 22.12+; the local environment was on Node 20.18.3 and emitted a runtime warning. Rejected: Bump Vite first | does not solve the Node floor and adds unnecessary churn Confidence: high Scope-risk: narrow Directive: Keep Node version guidance aligned across , package engines, and README setup text Tested: root npm run lint; webview-ui npm test; webview-ui npm run build Not-tested: root npm run check-types (existing DOM-lib errors remain)
Vite 8 is already in use, so the practical fix is to make the repo and docs require a Node version that satisfies Vite instead of leaving contributors on an older 22.x floor. The version manager pin, package engines, and setup docs now agree on Node 22.12.0+. Constraint: Vite 8 requires Node 20.19+ or 22.12+; the local environment was on Node 20.18.3 and emitted a runtime warning. Rejected: Bump Vite first | does not solve the Node floor and adds unnecessary churn Confidence: high Scope-risk: narrow Directive: Keep Node version guidance aligned across .nvmrc, package engines, and README setup text Tested: root npm run lint; webview-ui npm test; webview-ui npm run build Not-tested: root npm run check-types (existing DOM-lib errors remain)
Contributors needed a concrete, repo-specific verification path after the recent Node/Vite alignment, and Korean readers had no first-class entry point. This updates the English README with a practical verification section and adds a Korean companion README with matching setup and validation guidance. Constraint: The root `npm run check-types` signal is still noisy because of existing transitive DOM-lib type issues, so the README needs to point at the checks that currently prove the branch is healthy. Rejected: Keep a single English-only README | leaves Korean onboarding and verification guidance harder to discover Confidence: high Scope-risk: narrow Directive: Keep README.md and README.ko.md aligned whenever setup, verification, or contributor expectations change Tested: npx prettier --check README.md README.ko.md; root npm run lint; webview-ui npm test; webview-ui npm run build Not-tested: root npm run check-types (existing DOM-lib errors remain)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…rface Align Node 22 requirements and improve onboarding docs
Remove deprecated --session-id flag from Codex launch command (CLI no longer supports it). Increase Inspector panel width (360→440px) and font sizes throughout ToolOverlay for better readability. Add turn_context as fallback record type for JSONL workspace matching. Constraint: Codex CLI removed --session-id in recent versions Confidence: high Scope-risk: narrow Tested: esbuild + vite build pass Not-tested: runtime verification with live Codex session Amp-Thread-ID: https://ampcode.com/threads/T-019d0de3-ae77-7789-8aa2-0922e9b0d7e1 Co-authored-by: Amp <amp@ampcode.com>
This release resets the fork version to 0.1.0, points repository metadata and README links at this fork, records the Codex-focused feature set in the changelog, and restores a clean root typecheck so release verification can run end-to-end under the pinned Node runtime. Constraint: Release was requested from the current codex branch state Constraint: Fork release metadata must point at DavidUmKongs/oh-my-pixel-agents while retaining upstream extension identity Rejected: Tag current HEAD without version/docs updates | would leave release metadata inconsistent Rejected: Keep the existing root typecheck caveat | blocks clean release verification Confidence: high Scope-risk: narrow Reversibility: clean Directive: Keep fork-facing metadata and release notes aligned before future tags Tested: nvm use 22.12.0; npm run format:check; npm run check-types; npm run lint; cd webview-ui && npm test && npm run lint && npm run build; npm run build Not-tested: Marketplace/Open VSX publication for the fork
Codex now emits explicit active-phase signals for reasoning, text responses, custom tool calls, and task lifecycle events. The agent runtime stores the latest visible status and last activity time so the UI can rehydrate a working turn instead of defaulting to idle whenever no tool is open. Constraint: Codex JSONL does not guarantee a tool call for every productive phase Rejected: Infer activity purely from tool start/end events | misses reasoning-only work and text responses Confidence: high Scope-risk: moderate Directive: Keep status updates in sync with AgentState.currentStatus; future Codex event handlers should set both visible status and lastActivityAt Tested: npm run lint; npm run check-types; webview tests/build after the full change set Not-tested: Future Codex event variants beyond the currently observed schema
…ithout a tool The webview now keeps active Codex lifecycle states instead of deleting them immediately, and the shared agent-visibility helper formats those states into stable labels. This gives the UI a durable status source that can render Thinking, Responding, Active, or Waiting instead of dropping to Idle between tool calls. Constraint: UI state is rehydrated from messages, not from the raw Codex transcript Rejected: Store only tool activity and infer the rest in each component | duplicates logic and reintroduces idle fallbacks Confidence: high Scope-risk: moderate Directive: Treat AgentStatusInfo as a visible lifecycle record; do not reintroduce status deletion for active phases Tested: webview-ui npm test; webview-ui npm run lint; webview-ui npm run build Not-tested: Browser-runtime behavior when a future Codex status string appears outside the known set
…le during work The label, debug, and inspector views now prefer current lifecycle state and active tool summaries over a generic idle fallback. This keeps the office view aligned with the actual Codex turn phase while still showing the most specific tool activity when one exists. Constraint: The UI needs a safe fallback for states that are not tool-driven Rejected: Hide the status entirely until a tool exists | makes reasoning-only work look inert Confidence: high Scope-risk: moderate Directive: Tool summaries still win when present; lifecycle labels are only the fallback path Tested: webview-ui npm test; webview-ui npm run lint; webview-ui npm run build Not-tested: Visual polish on very small inspector widths
File growth now clears stale waiting state immediately and the waiting timer only fires if no newer transcript activity has arrived since it was scheduled. This makes the heuristic recovery path match the actual transcript flow instead of leaving the UI parked in an outdated idle or waiting state. Constraint: Codex activity can resume through non-tool transcript lines Rejected: Shorten the waiting timeout globally | would increase false positives elsewhere Confidence: high Scope-risk: moderate Directive: The waiting timer is now guarded by lastActivityAt; update that timestamp whenever new transcript activity is observed Tested: npm run lint; npm run check-types; webview-ui npm test; webview-ui npm run lint; webview-ui npm run build Not-tested: Extremely sparse transcript streams where Codex emits no parseable follow-up after an active phase
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Type of change
Related issues
Screenshots / GIFs
Test plan
mainbranchnpm run buildpasses locallysrc/constants.tsorwebview-ui/src/constants.ts)