New white/green UI: batch-status perf, tab-scoped workflow buttons, auto-refresh, reshot README screenshots - #25
Merged
Merged
Conversation
engine.status() (and the UI's /api/state on launch) fetched every record with two sequential adapter round-trips (get_record + get_head). On a remote store that is R*2 network round-trips; ~50 records at ~80ms RTT stalls the UI ~20s. Add optional batch get_records/get_heads to the adapter Protocol, implement them for Mongo and Postgres (one query per collection), and route status() through a feature-detected batch path with a per-record fallback so any adapter still works. Measured on the demo DB: 249 -> 28 DB round-trips for 50 records (identical StatusRow output, verified against the per-record path).
The Compare/New branch/Commit draft/Prepare PR/Merge PR buttons sat in the global top bar on every tab. Now branch buttons show only on the Branches screen and PR buttons only on the Pull requests screen; clicking one first navigates to that tab's workspace, then opens the action. Records/Activity stay uncluttered.
… controls - Light mode is now GitHub-white (#fff canvas, #f6f8fa chrome) instead of the paper/cream palette; dark diff surface goes neutral-dark to match the app. - Drop the blue accent everywhere: bookmark/brand/avatar/tab-underline/focus/ selection cues go neutral (ink). A single restrained GitHub green stays for primary actions (Create/Adopt/Commit 'go' buttons) and semantic commit/branch dots. - Unify top-bar control sizing: ENV/BRANCH selects, Refresh, and the theme toggle all share one 32px height + 6px radius and center on a single row.
Replace the three README screenshots (diff, whole-system impact, scoped impact) with captures of the redesigned white/green UI. The impact shots use real Gemini narration on the synthetic support fixture. Enable the demo's LLM narration out of the box: set [connections].ai_provider to gemini and opt the refund_resolution change + its scoped policy/eval/rollout records into share_with_ai (demo data is synthetic and safe).
The UI only fetched state on load and manual Refresh, so drift/branches/PRs created out-of-band (in a terminal or another tab) didn't appear until you reloaded. Add softRefresh() — reload state but keep the current tab/record — and drive it from window focus, visibilitychange, and a 15s interval. Skips while a modal is open or a diff/impact panel is on screen so it never wipes an in-progress read or an LLM narration result.
Capture the new white/green UI's Branches workspace (default + draft branches, one with an open PR) and an open cfgit pull request reviewing a policy-rule change with a line-aligned diff. Reference both in the README hero block.
CI installs the mcp extra unpinned (mcp>=1.0). mcp 2.0.0 (released after main
last passed) removed mcp.server.fastmcp, which cfg/mcp/server.py imports, so all
5 MCP tests hard-failed at collection. Cap the extra at mcp>=1.0,<2 until the
server is ported to the 2.x API, and switch the test guard to
importorskip('mcp.server.fastmcp') so a future relocation skips instead of fails.
4 tasks
Owner
Author
|
The |
This was referenced Aug 2, 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.
Rebased the
new ui to match gitwork onto currentmain(v0.4.1) and extended it with a UI redesign, a launch-perf fix, workflow-tab fixes, auto-refresh, and fresh README screenshots.What's in here
perf(status): batch live+head reads — kills the UI launch stall
engine.status()(and the UI's/api/stateon launch) did 2 sequential DB round-trips per record — a per-record N+1. On a remote store, ~50 records × 2 × RTT stalled the UI ~20s. Added optional batchget_records/get_headsto the adapter Protocol (Mongo + Postgres), routedstatus()through a feature-detected batch path with a per-record fallback. Measured on the demo DB: 249 → 28 DB round-trips for 50 records, identicalStatusRowoutput.fix(ui): scope branch/PR workflow buttons to their tabs
Compare / New branch / Commit draft now show only on the Branches screen; Prepare PR / Merge PR only on Pull requests. Clicking one navigates to that tab's workspace first, then opens the action. Records/Activity stay uncluttered.
style(ui): true-white light theme, green-only accent, aligned controls
Light mode is now GitHub-white (was paper/cream); dark diff surface goes neutral-dark. Dropped the blue accent everywhere (bookmark/brand/avatar/tab-underline/focus/selection go neutral ink); a single restrained GitHub green stays for primary actions and semantic commit/branch dots. Unified top-bar control sizing (ENV/BRANCH selects, Refresh, theme toggle all 32px / 6px radius).
feat(ui): auto-refresh on focus, tab-visible, and a 15s poll
The UI only fetched on load/manual Refresh, so out-of-band drift/branches/PRs didn't appear without a reload. Added
softRefresh()driven by window focus,visibilitychange, and a 15s interval — skipping while a modal or impact/LLM panel is open so it never interrupts a read.docs: reshoot README screenshots on the new UI
Replaced the 3 hero images (diff, whole-system impact, scoped impact) with white-UI captures using real Gemini narration on the synthetic support fixture, and added 2 new views (Branches, an open pull request). The demo's
[connections]now enables--llmnarration out of the box (synthetic data only).Verification
No secrets are committed (the Gemini key used for narration lived only in the server's runtime env).