refactor: replace the dashboard with the report roster - #22
Merged
Merged
Conversation
The dashboard is replaced by the report screens (intent 392). Removes scripts/dashboard.rb, its banner and screen renderers, the dashboard templates, and their tests, and fixes the tests and comments that named them as live code.
Updates architecture.md, internals.md, the human report contract, and the ledgers guide to describe report-screen state --all as the surface that replaced the dashboard, and drops descriptions of the deleted dashboard files. Adds a CHANGELOG entry under Unreleased.
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.
What
This change removes the dashboard and puts the report roster in its place. When a prompt is exactly "continue", the capture hook runs
report-screen state --allon the store of the working directory. It uses the project store when the directory maps to one, and the global store otherwise. The plain roster goes into the agent's context, and the painted roster is the system message.Why
The owner ruled on 2026-09-24 that the dashboard was never the right build. The report screens in
scripts/report-screenandscripts/lib/report_screen.rbalready showed the same state and were unused. The ruling says they replace the dashboard, and the dashboard files and tests are deleted, not kept behind a flag.How
scripts/hook-capture: the continue prompt runs the report roster for the resolved store instead ofdashboard.rband its banner.scripts/dashboard.rb,scripts/lib/dashboard_banner.rb,scripts/lib/dashboard_screen.rb,scripts/lib/screens/dashboard.rbandtemplates/dashboard-screen.md.dashboard_test,dashboard_banner_test,dashboard_screen_test,dashboard_sentinel_testanddashboard_advisory_flag_test.scripts/lib/installer_core.rb: the installer no longer ships the deleted files..rubocop_todo.yml: dropped the entries for the deleted files.scripts/doctor.rb,scripts/lib/report_screen.rb,scripts/lib/savepoint.rbandscripts/lib/screen_paint.rb: comments no longer name the dashboard as a caller.hermeticity_guard_test,lifecycle_stage_guard_test,modify_pass_306_test,codex_hooks_test,report_screen_header_and_width_test,report_screen_skill_contract_test,screen_paint_test,screen_width_testandstore_walker_compat_test.docs/architecture.md,docs/internals.md,docs/guides/reading-the-ledgers.mdanddocs/help/human-report-contract.mddescribe the roster.CHANGELOG.mdhas an entry under Unreleased.Tests
Each changed test file ran once, and all passed with 0 failures:
test/capture_hook_test.rb: 40 runs, 160 assertionstest/codex_hooks_test.rb: 26 runs, 88 assertionstest/hermeticity_guard_test.rb: 10 runs, 19 assertionstest/lifecycle_stage_guard_test.rb: 12 runs, 33 assertionstest/modify_pass_306_test.rb: 2 runs, 24 assertionstest/report_screen_header_and_width_test.rb: 18 runs, 239 assertionstest/report_screen_skill_contract_test.rb: 7 runs, 34 assertionstest/rubyopt_clearing_test.rb: 8 runs, 34 assertions (it failed in the first CI run, because it counts ruby spawns line by line and one spawn was split over 2 lines)test/screen_paint_test.rb: 62 runs, 317 assertionstest/screen_width_test.rb: 30 runs, 926 assertionstest/store_walker_compat_test.rb: 8 runs, 27 assertionsThe change gate
bin/verify-change origin/mainpassed. Lint was clean, patch coverage found no coverable lines changed, and the mutation step generated no mutations. CI runs the full suite on this pull request.