Skip to content

Host the cockpit with Bijou 7 - #109

Open
flyingrobots wants to merge 2 commits into
mainfrom
deps/bijou-7.2
Open

Host the cockpit with Bijou 7#109
flyingrobots wants to merge 2 commits into
mainfrom
deps/bijou-7.2

Conversation

@flyingrobots

@flyingrobots flyingrobots commented Jul 27, 2026

Copy link
Copy Markdown
Member

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

npm test                         # 2,095 passed
npx eslint .                     # passed
npm run test:integration:node    # 199 passed
npm pack --dry-run               # passed

Release impact

  • Patch release: v6.5.6
  • Breaking public API change

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The PR upgrades Bijou packages to 7.2.0, moves the interactive dashboard to createFramedApp, updates themed rendering and cursor ownership, adds dashboard and lower-mode tests, and documents the v6.5.6 release cycle.

Changes

Bijou 7 cockpit migration

Layer / File(s) Summary
Runtime, theme, and progress contracts
package.json, bin/ui/context.js, bin/ui/theme.js, bin/ui/progress.js, test/unit/cli/*, test/unit/package/*
Bijou dependencies, context wiring, theme tokens, cursor handling, and related regression tests are updated for 7.2.0.
Framed dashboard integration
bin/ui/dashboard.js, bin/ui/dashboard-view.js, test/unit/cli/dashboard*
Dashboard state, rendering, key routing, overlays, commands, search, launch execution, and hosted tests are refactored around createFramedApp.
Cycle, usage, and validation records
BEARING.md, CHANGELOG.md, README.md, ROADMAP.md, docs/design/*
Release status, cockpit guidance, design decisions, witness evidence, validation results, and roadmap references are updated for v6.5.6.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

Suggested reviewers: git-stunts

Poem

A rabbit frames the cockpit bright,
With guarded cursors tucked from sight.
Themes glow clear, commands take flight,
Bijou seven makes things right.
The burrow cheers the shipped delight!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 5.68% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The changes match #105 and #106 by upgrading Bijou 7.2.0, hosting the cockpit with createFramedApp, and preserving static/output behavior.
Out of Scope Changes check ✅ Passed The documented and code changes stay focused on the Bijou 7 cockpit migration, tests, and release notes, with no clear unrelated additions.
Title check ✅ Passed The title clearly summarizes the main change: hosting the cockpit with Bijou 7.
Description check ✅ Passed The description covers the required sections and includes issue refs, design/proof, validation, and release impact.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 9ea91a7 and 88de976.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (18)
  • BEARING.md
  • CHANGELOG.md
  • README.md
  • ROADMAP.md
  • bin/ui/context.js
  • bin/ui/dashboard-view.js
  • bin/ui/dashboard.js
  • bin/ui/progress.js
  • bin/ui/theme.js
  • docs/design/0056-bijou-7-framed-cockpit/bijou-7-framed-cockpit.md
  • docs/design/0056-bijou-7-framed-cockpit/witness/validation.md
  • docs/design/README.md
  • package.json
  • test/unit/cli/dashboard.launch.test.js
  • test/unit/cli/dashboard.test.js
  • test/unit/cli/progress.test.js
  • test/unit/cli/theme.test.js
  • test/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.md
  • docs/design/0056-bijou-7-framed-cockpit/witness/validation.md
  • docs/design/0056-bijou-7-framed-cockpit/bijou-7-framed-cockpit.md
ROADMAP.md

📄 CodeRabbit inference engine (AGENTS.md)

Use ROADMAP.md as a signpost to the GitHub release tracker

Files:

  • ROADMAP.md
CHANGELOG.md

📄 CodeRabbit inference engine (AGENTS.md)

Use CHANGELOG.md to record the historical truth of merged behavior

Files:

  • CHANGELOG.md
README.md

📄 CodeRabbit inference engine (AGENTS.md)

Use README.md as the public front door, core value prop, and quick start documentation

Files:

  • README.md
BEARING.md

📄 CodeRabbit inference engine (AGENTS.md)

Use BEARING.md to 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.js
  • test/unit/cli/theme.test.js
  • test/unit/package/dependency-pins.test.js
  • test/unit/cli/progress.test.js
  • test/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

Comment thread bin/ui/dashboard-view.js
Comment thread bin/ui/dashboard.js
Comment thread bin/ui/dashboard.js Outdated
Comment thread bin/ui/dashboard.js
Comment thread docs/design/0056-bijou-7-framed-cockpit/bijou-7-framed-cockpit.md
Comment thread README.md
Comment thread test/unit/cli/dashboard.launch.test.js
Comment thread test/unit/cli/dashboard.test.js
Comment thread test/unit/cli/dashboard.test.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Host the cockpit shell with createFramedApp Update the Bijou dependency family to 7.2.0

1 participant