feat: Phase 2, projects, skills, custom agents, LSP, CI tab, and fixes#6
Merged
Merged
Conversation
Large delivery covering the 15-task program plus follow-up fixes. Whole workspace is green: cargo fmt/clippy/test (344 core + 13 CLI + 7 integration) and frontend npm ci + tsc. Core / Tauri: - Worktrees and agent logs now live under $HOME/.cockpit (config::cockpit_home, worktrees_dir, logs_dir); fixed the inside-worktree log + relative-fallback bugs. - Auth = the user's Claude Code login via the `claude` CLI (login-shell PATH resolution); no API key, no SDK. Removed dead config fields. - Full Phase 2: plan gate reuses the one Gated loop (no new GateState); planner generation + plan-doc ingestion; guarded plan-approve fans out N implementers (bounded by max_parallel_agents), one worktree each. - First-class Project concept (groups PRs; Linear is one optional source); ProjectId/ProjectSource/Project, ProjectStore, reviews_by_project. - Skills: ~/.cockpit/skills, install/sync via gh api (SHA-idempotent), now actually injected into every rework prompt; filtered by diff. - Customizable per-AgentMode prompt fragments (verbatim), agent_command made live. - CI visibility: gh pr checks + per-run logs; explicit Fix-CI into the rework loop. - LSP bridge (axum WS <-> stdio) for pyright / typescript-language-server, with a hand-written Monaco client (no monaco-languageclient coupling). - Hardened diff-gate Fix loop with a real end-to-end integration test; slashed worktree-branch fix. Frontend: - New IA: PRs grouped by project, Projects, Skills, Agents, Settings; removed Stacks and the batch-approve panel. - Shortcut registry + Kbd labels; settings rewrite; PR Info tab removed and its links/stack relocated to the DiffView header; Monaco first-load theme fix. - New views: PlanView, NewProjectView, SkillsView, AgentEditor, CiPanel. - External links routed through the opener plugin (with the URL scope), replacing no-op target=_blank anchors. Known follow-ups (tracked in cockpit-docs/PROGRAM_PLAN.md): per-project plan scoping (plan store still global), CLI loop daemon seam, two dangling backend commands, no FE unit-test harness, runtime verification with live claude/pyright/gh. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tests The Tauri app + cockpit-core integration tests (fix_loop_e2e, batch_fan_out_e2e) are now the product and validation surfaces. The CLI's Stop-hook loop was broken across processes and its role is covered by the integration suite. Also removes CLI-only orphans: store file-persistence API + store::Error, the batch module, and the clap workspace dep. CLAUDE.md/SPEC.md/README updated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
alejandro-nexcade
added a commit
that referenced
this pull request
Jul 2, 2026
* core+app: foundational shapes for phases B-E - CiSummary moves to model (domain rollup); AgentMode::Review (advisory pre-pass, never advances the gate); FindingSeverity/ReviewFinding; ConversationKind/ConversationItem (read-only GitHub context, distinct from ephemeral Comments per §0.4) - Review gains ci_summary, review_findings, conversation, last_reviewed_sha (all serde-default; legacy state loads clean) - AgentPrompts.review override; Config.notify_poll_secs; REVIEW_INSTRUCTION - bindings regenerated; FE exhaustive switches extended Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * core: stub diff_signals and findings modules for parallel wave Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: interaction-patterns research synthesis (round 2) + roadmap Phase F Verified competitor teardowns (Graphite taxonomy/downvote/rules model, CodeRabbit price band + review/rework collapse, the ~58% critical-bug ceiling), HCI evidence for the gated loop (four oversight surfaces, 2.1-steps-per-prompt chunking, zero-of-99 autonomy trust), the trust-miscalibration hazard binding our evidence/trajectory UI, and Cisco sizing mechanics. Locks 10 design decisions; adds roadmap Phase F. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * core: file-at-rev adapters for full-file diff context git2 blob reads at a revision (binary/oversize/missing-path -> None, bad rev -> Err) and a gh api contents fallback with pure, tested response parsing. 512 KiB cap guards Monaco full-file rendering. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * core: advisory findings contract — parser, review prompt, findings path Tolerant JSON-array extraction (string-aware balanced scan, junk-wrapped agent output survives), skip-malformed entries, stable content-hashed ids, 200-finding cap. assemble_review_prompt mirrors the plan prompt sections with a golden; findings_file_path shares the plan slug sanitizer. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * core: deterministic diff signal engine — size, risk paths, test delta, weakening Pure single-pass unified-diff analysis: size classes at documented boundaries, priority-ordered per-file risk flags, assertion counting, and seven test-weakening detectors with jump targets. 16 tests + regenerated bindings. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * app: wire evidence, pre-review, and full-file commands - get_evidence: deterministic signals + CI rollup (trajectory slot ready for Phase D) - pre_review: explicit reviewer-agent spawn (AgentMode::Review); findings ingested on completion, file deleted after transport, gate state never touched; findings cleared when the head advances - get_file_pair: worktree git2 reads with gh contents fallback and honest full:false degradation Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * app(fe): Phase B — evidence strip, advisory pins, pre-review, full-file view EvidenceStrip (CI/size/test-delta/risk/weakening chips with jump-to-hunk), advisory finding pins on parallel zone machinery (dashed severity rail, local dismiss, never counted as comments), Pre-review button, full-file toggle with identity line maps + per-head cache, TS signal mirror with Rust-fixture parity tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * app: clear advisory findings even when the post-rework diff refresh fails Stale pins on changed content mislead; the head has moved regardless of whether the gh re-fetch succeeded (reviewer minor #6). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Alejandro Perez <alejandro.perez.gancedo@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.
Summary
The 15-task program + follow-up fixes, delivered as one green change set. See
cockpit-docs/PROGRAM_PLAN.mdfor the full decision log and per-task detail.Highlights
Gatedloop (no new states), planner generation + plan-doc ingestion, guarded plan-approve fans out N implementers (one worktree each, bounded).Projectgrouping PRs; Linear demoted to one optional source.~/.cockpit/skills, install/sync viagh api(SHA-idempotent), actually injected into rework prompts.AgentMode;agent_commandnow live.$HOME/.cockpit(fixes the CWD/inside-worktree bugs).Verification
cargo fmt --check,cargo clippy -D warnings,cargo test --all— green (344 core + 13 CLI + 7 integration).npm ci+npx tsc --noEmit— green.Known follow-ups (not blockers; tracked in PROGRAM_PLAN.md)
restack_pr,load_plan_from_path) lack FE entry points.tsc+ build only).claude/pyright/gh.🤖 Generated with Claude Code