Host the cockpit with Bijou 7 - #109
Conversation
📝 WalkthroughWalkthroughThe PR upgrades Bijou packages to 7.2.0, moves the interactive dashboard to ChangesBijou 7 cockpit migration
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 9
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@bin/ui/dashboard-view.js`:
- Around line 529-547: Update renderAtlasBriefing so filtering removes only
absent sidebar section values while preserving the intentional empty-string
separators between sections. Keep the existing section order and newline joining
unchanged.
In `@bin/ui/dashboard.js`:
- Around line 666-705: Update handleOperationsKey to delegate its n, s, and x
branches to handleOpenStoreWizardMsg, handleRefreshStatisticsMsg, and
handleRunDoctorMsg respectively, passing the current model and dependencies as
required. Remove the duplicated state and command construction from
handleOperationsKey so the message handlers remain the single source of truth,
including their workspace: 'operations' behavior.
- Around line 1183-1185: The global dashboard keymap should not bind escape or
backspace because only modal-specific handlers process them. Remove the escape
and backspace bindings from the shared keymap while preserving their bindings in
the password and store-wizard modal configurations; leave the enter binding
unchanged.
- Around line 1207-1226: Update createDashboardModalKeyMap to preserve the
KeyMap instance returned by createKeyMap instead of spreading helpMap into a
plain object. Delegate the returned handle(msg) implementation to helpMap.handle
while retaining the existing passthrough behavior for unmatched input and the
current bindings.
In `@docs/design/0056-bijou-7-framed-cockpit/bijou-7-framed-cockpit.md`:
- Around line 365-370: Replace the unrelated “Done Does Not Mean” bullets in the
design document with git-cas-specific scope boundaries, including TUI
modernization `#39`, light-theme work, and the store-wizard rewrite. Retain the
boundary about internal cockpit panels only if it applies to this design, and
ensure the resulting contract contains no references to git-warp, retained
substrates, or the Think mind.
In `@README.md`:
- Around line 73-78: Update the quick-start keybinding list in the framed
cockpit README to match Bijou 7.2.0: remove the incorrect Shift+N
notification-history binding and unqualified “:” command binding, while
retaining the valid Ctrl+P command palette, ? help, F2 settings, and confirmed q
exit bindings.
In `@test/unit/cli/dashboard.launch.test.js`:
- Around line 39-57: The launchDashboard static fallback test should verify the
promised tab-separated format, not merely the presence of both values. In the
“retains the tab-separated static fallback outside a TTY” test, add an assertion
on the output string from output.write that contains “alpha” followed by a tab
and “abc123”.
In `@test/unit/cli/dashboard.test.js`:
- Around line 283-288: Strengthen the “renders themed dashboard headers” test by
retaining the existing exclusion assertion and adding a positive assertion for
workspace-owned header content, such as “1 Explorer” or “3 Operations.” Update
the assertion in the test using createDashboardApp and renderView so it verifies
the surface actually renders.
- Around line 12-24: Rename the local createDashboardApp test shim to a name
such as createPageHarness, and update its call sites in the legacy dashboard
tests. Keep the imported production createDashboardApp alias
createFramedDashboardApp unchanged so the two implementations remain clearly
distinguished.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 07b633f7-8902-4c33-8c57-4605b9d12058
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (18)
BEARING.mdCHANGELOG.mdREADME.mdROADMAP.mdbin/ui/context.jsbin/ui/dashboard-view.jsbin/ui/dashboard.jsbin/ui/progress.jsbin/ui/theme.jsdocs/design/0056-bijou-7-framed-cockpit/bijou-7-framed-cockpit.mddocs/design/0056-bijou-7-framed-cockpit/witness/validation.mddocs/design/README.mdpackage.jsontest/unit/cli/dashboard.launch.test.jstest/unit/cli/dashboard.test.jstest/unit/cli/progress.test.jstest/unit/cli/theme.test.jstest/unit/package/dependency-pins.test.js
📜 Review details
⏰ Context from checks skipped due to timeout. (3)
- GitHub Check: test-docker (bun)
- GitHub Check: test-docker (node)
- GitHub Check: test-docker (deno)
🧰 Additional context used
📓 Path-based instructions (5)
docs/design/**
📄 CodeRabbit inference engine (AGENTS.md)
Use
docs/design/directory for durable design contracts and proof plans
Files:
docs/design/README.mddocs/design/0056-bijou-7-framed-cockpit/witness/validation.mddocs/design/0056-bijou-7-framed-cockpit/bijou-7-framed-cockpit.md
ROADMAP.md
📄 CodeRabbit inference engine (AGENTS.md)
Use
ROADMAP.mdas a signpost to the GitHub release tracker
Files:
ROADMAP.md
CHANGELOG.md
📄 CodeRabbit inference engine (AGENTS.md)
Use
CHANGELOG.mdto record the historical truth of merged behavior
Files:
CHANGELOG.md
README.md
📄 CodeRabbit inference engine (AGENTS.md)
Use
README.mdas the public front door, core value prop, and quick start documentation
Files:
README.md
BEARING.md
📄 CodeRabbit inference engine (AGENTS.md)
Use
BEARING.mdto document current execution gravity and active tensions
Files:
BEARING.md
🧠 Learnings (2)
📚 Learning: 2026-02-28T19:21:13.982Z
Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 15
File: test/unit/domain/services/CasService.envelope.test.js:326-330
Timestamp: 2026-02-28T19:21:13.982Z
Learning: In fuzz tests for cryptographic operations, use a seeded PRNG (e.g., xorshift32) for control-flow variables such as plaintext size selection and recipient index selection to ensure reproducibility. Continue to use randomBytes() for cryptographic keys and nonces to preserve realistic randomness and avoid security anti-patterns. This guideline applies to test files that perform fuzz testing of crypto logic; implement a consistent seed setup (e.g., fixed seed in test initialization) and document the rationale to enable deterministic replays across runs.
Applied to files:
test/unit/cli/dashboard.launch.test.jstest/unit/cli/theme.test.jstest/unit/package/dependency-pins.test.jstest/unit/cli/progress.test.jstest/unit/cli/dashboard.test.js
📚 Learning: 2026-03-30T19:53:48.000Z
Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 29
File: docs/design/TR-010-planning-index-consistency-review.md:121-131
Timestamp: 2026-03-30T19:53:48.000Z
Learning: In this repo, CHANGELOG.md entries should be user-facing and descriptive (bullet points) rather than cycle-ID headings (e.g., use a phrase like “Planning-index consistency review” instead of a “TR-010 — …” heading). When searching the changelog, don’t rely on grepping for cycle IDs (e.g., “TR-010”) because it may cause false negatives; search for the descriptive keywords/phrases from the bullet entries instead.
Applied to files:
CHANGELOG.md
🔇 Additional comments (28)
package.json (1)
105-108: LGTM!test/unit/package/dependency-pins.test.js (1)
34-34: LGTM!Also applies to: 58-65
bin/ui/context.js (1)
6-6: LGTM!Also applies to: 22-27, 73-84
bin/ui/theme.js (1)
5-5: LGTM!Also applies to: 34-45, 56-56, 96-136
test/unit/cli/theme.test.js (1)
1-35: LGTM!bin/ui/progress.js (1)
7-7: LGTM!Also applies to: 46-52, 101-101, 112-182, 195-211
test/unit/cli/progress.test.js (1)
11-16: LGTM!Also applies to: 25-48, 58-97
docs/design/0056-bijou-7-framed-cockpit/witness/validation.md (1)
1-135: LGTM!docs/design/README.md (1)
14-14: LGTM!bin/ui/dashboard.js (5)
6-13: LGTM!Also applies to: 487-492
620-653: LGTM!
655-664: LGTM!Also applies to: 707-715, 732-736
1280-1370: LGTM!
1372-1410: LGTM!Also applies to: 1432-1433
bin/ui/dashboard-view.js (6)
27-60: LGTM!
62-83: LGTM!Also applies to: 101-115
117-156: LGTM!
196-223: LGTM!
225-330: LGTM!Also applies to: 332-381, 399-457, 486-527
549-596: LGTM!Also applies to: 599-663, 665-678
test/unit/cli/dashboard.test.js (3)
119-138: LGTM!
140-281: LGTM!
3-3: LGTM!Also applies to: 51-102, 357-357
test/unit/cli/dashboard.launch.test.js (1)
7-21: LGTM!BEARING.md (1)
17-26: LGTM!Also applies to: 87-93, 149-158
CHANGELOG.md (1)
10-25: LGTM!ROADMAP.md (1)
46-46: LGTM!docs/design/0056-bijou-7-framed-cockpit/bijou-7-framed-cockpit.md (1)
1-45: LGTM!Also applies to: 47-312, 330-364, 371-375
Closes #105
Closes #106
Result
Upgrades the coherent Bijou family to 7.2.0 and hosts the interactive cockpit in
createFramedApp, preserving static output and domain behavior.Design / proof
docs/design/0056-bijou-7-framed-cockpit/Validation
Release impact