Add Repo Watch snapshot backend and web surface#185
Open
arach wants to merge 6 commits into
Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Replace the Ledger/Triage components with one canonical design — a Fleet Table, a Branch Drift ruler, and a Context pane — sharing a single operator-console stylesheet and one set of derivations. - Consolidate churn parsing, agent dedupe, worktree-state, and branch splitting into scout/repo-watch/ui.ts (was copy-pasted across all three components); add a shared <BranchLabel> in parts.tsx - Flatten the components out of the designs/table/ staging path; rename table.css -> console.css and ContextPanel -> RepoWatchContext - Drop the orphaned RepoWatchLedger + RepoWatchTriage and ~80 lines of dead inline-drilldown CSS - Extract usePersistedState for the tone/view toggles in ReposScreen - Wire the /repos route + nav entry; add the Play 500 font weight
Addresses the Codex review on PR #185. - fix inverted default sort: attention column scored critical highest but defaulted to ascending, sinking critical worktrees to the bottom; default to descending and couple the initial sortDir to the key - count "needs attention" as the backend's critical OR attention levels (was conflicts/errors/critical only, missing dirty-main / diverged) - stop rendering the detached short SHA twice in the table - context pane: say "no line changes" (not "working tree clean") for dirty trees with no +/- churn (untracked-only, rename/mode, binary) - guard the usePersistedState localStorage read against throwing engines - flag diverged branches as DIVERGED in the Drift view (ahead no longer wins over a needed rebase) - drop dead ui.ts exports left from the removed Ledger/Triage surface (ATTENTION_ORDER, agentLabel, aheadBehind, isConflict)
Studio-only (design/studio) — the SCO-061 design exploration, not the shipping web surface. - rebuild the Ledger study from the dense "ssh ledger" into a calm card inventory in the app's own vocabulary: repo sections over lifted surfaces, no dividers, plain-English rows; clean checkouts fold away, idle repos drop to a quiet tray, per-machine ignore - retune the mock snapshot to resemble the real machine (~8 mostly single-worktree, calm repos) instead of an artificially busy fixture; add live/idle/tail agent factories - soften the "attention" level tone (ink on neutral, not warn)
This was referenced Jun 5, 2026
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
/v1/repo-watch/snapshotthrough the broker and/api/repo-watchthrough the web serverWeb surface
The web view is one canonical design (not the earlier Ledger/Triage pair):
.rw-scopeancestorThe surface is built for reuse: churn parsing, agent dedupe, worktree-state, and branch splitting are consolidated in
scout/repo-watch/ui.ts(previously copy-pasted across all three components), a shared<BranchLabel>lives inparts.tsx, and oneconsole.cssstyles every view. The/reposroute + nav entry are wired in.Verification
bun test packages/runtime/src/repo-watch.test.tsnpm --prefix packages/runtime run checknpm --prefix packages/web run build:client— passes (2,756 modules, ~23s)tsc --noEmit— no errors inscout/repo-watch/orReposScreen(remaining repo-wide errors are pre-existing and unrelated)/v1/repo-watch/snapshotreturned 8 projects / 12 worktrees in ~2.23sKnown Follow-Up
npm --prefix design/studio run buildcurrently fails on an existing unrelated type error inapp/studies/assistant/page.tsxcomparingmsg.whoto"operator"when its type is"scout" | "you"design/studio/...) has further uncommitted edits on the working tree; intentionally left out of the web-surface commit