Create a Focused Workshop Experience

OpenCode·deepseek-v4.1-flash·kernelKain·18h ago·24min·1 Checkpoint·48 file changes·+1695/-625·892.6K tokens

Work directly in:

/home/kernel-kain/Documents/Github/unfinished-business

Execution rules:

  1. Work only on the main branch.
  2. Begin with:
    • git status
    • git switch main
    • git pull --ff-only origin main
  3. Preserve all unrelated changes, untracked files, and existing stashes. Do not apply, delete, or commit .backboard/, .unfinished-business/, .env files, credentials, or the existing stash unless this phase explicitly requires it.
  4. Read the relevant source, tests, AGENTS.md files, and documentation before editing.
  5. Implement only the phase described below. Do not begin the next phase.
  6. Maintain backward compatibility with existing saved projects through explicit migrations.
  7. Do not expose provider secrets, prompts containing secrets, or private model output in logs, telemetry, screenshots, or error messages.
  8. Add or update tests for every behavior changed.
  9. After implementation, update the relevant project documentation, including:
    • README.md when user-facing behavior changes
    • docs/ARCHITECTURE.md
    • docs/DECISIONS.md
    • docs/IMPLEMENTATION_PLAN.md
    • docs/EVIDENCE.md
    • docs/RELEASE_NOTES.md
    • any phase-specific setup or integration documentation
  10. Mark the phase complete in the implementation plan only after its acceptance criteria pass.
  11. Run all relevant verification. At minimum:
  • npm run typecheck
  • npm test
  • npm run build Run visual, security, budget, contract, migration, or integration tests when affected.
  1. Review the final git diff for accidental files, secrets, debugging output, and unrelated changes.
  2. Commit with the commit message specified by this phase.
  3. Push the commit to origin/main. Never force-push.
  4. If the push is rejected because origin/main advanced, fetch and rebase safely, resolve only scoped conflicts, rerun verification, and push normally.
  5. Finish with:
  • implementation summary
  • changed files
  • documentation updated
  • tests and results
  • known limitations
  • commit hash
  • push result

Do not stop for ordinary implementation decisions. Stop only if there is a destructive conflict, missing required credential, irreconcilable remote conflict, or a decision that would materially change the product’s intended behavior.

18h ago·0.0s

I found the missing roadmap: the repository’s Phase 5 prompt is the idea-aware tool recommendation engine (the next uncompleted phase after the Upgrade Phase 4 work). I’ll implement that phase, with a versioned catalog, deterministic recommendations, persisted add/defer/reject decisions, UI, schema v8 migration, tests, and docs.

Implement Phase 5: simplify the workshop and reorganize OpenCode controls.

Objectives:

  • Present one primary task at a time.
  • Hide technical machinery until it is relevant.
  • Replace confusing session notes and run inspector terminology.

Implementation requirements:

  1. Refactor the workshop into:
    • focused main task area;
    • collapsible project-outline drawer;
    • contextual activity/results drawer;
    • compact model and connection header.
  2. Preserve all existing functionality during the layout change.
  3. Rename Run Inspector to Activity & results.
  4. Organize it into:
    • Progress
    • Changes
    • Checks
  5. Hide the activity drawer when there has been no relevant operation.
  6. Put native IDs, capability mappings, raw evidence, and provider payloads under Technical details.
  7. Replace Session notes with Project memory:
    • decisions;
    • user answers;
    • assumptions;
    • constraints;
    • unresolved questions.
  8. Keep raw transcripts in advanced diagnostics rather than the primary workspace.
  9. Split OpenCode controls into:
    • Model & connection
    • Contextual permission request
    • Advanced diagnostics
  10. Keep sessions, agents, commands, skills, MCP, LSP, formatters, low-level revert, and export controls out of the normal user flow.
  11. Avoid loading expensive advanced diagnostics before the user opens them.
  12. Ensure there is one clear primary action per stage.
  13. Improve mobile/tablet behavior, keyboard navigation, focus management, loading announcements, and reduced-motion behavior.
  14. Update intentional visual snapshots.

Acceptance criteria:

  • The main task is understandable without opening advanced controls.
  • Empty technical panels no longer occupy permanent screen space.
  • Permission requests remain impossible to miss.
  • Project memory is useful and editable.
  • All primary workflows work with keyboard and screen reader navigation.

Commit message:

refactor(ui): create a focused workshop experience

17h ago·0.0s

Implementation summary

Implemented Phase 5 — focused workshop and reorganized OpenCode controls on main.

  • Reworked /workshop into a single focused task column with a compact model/connection header.
  • Added collapsible Project outline and Project memory drawers.
  • Renamed Run Inspector to Activity & results and reorganized it into Progress, Changes, and Checks.
  • Hid Activity & results entirely when no operation or check exists.
  • Moved native IDs, capability mappings, raw evidence, and provider payloads under Technical details.
  • Replaced Session notes with editable Project memory covering decisions, user answers, assumptions, constraints, and unresolved questions.
  • Added authenticated POST /api/memory with superseding corrections that never alter approvals, drafts, Maker scope, or native runs.
  • Split OpenCode controls into Model & connection, a prominent contextual permission request, and lazy-loaded Advanced diagnostics.
  • Kept sessions, agents, commands, skills, MCP, LSP, formatters, low-level revert, export, and raw transcripts inside Advanced diagnostics.
  • Added keyboard-operable drawers, stage-change focus, polite busy/permission announcements, responsive mobile behavior, and one primary action per stage.
  • Intentionally refreshed visual snapshots.

Changed files

Core UI and behavior:

  • src/web/workshop/WorkshopPage.tsx
  • src/web/opencode-panel.tsx
  • src/web/components/RunInspector.tsx
  • src/web/components/ProjectMemory.tsx (new)
  • src/web/api.ts
  • src/web/styles.css
  • src/web/demo/DemoPage.tsx
  • src/web/landing/LandingPage.tsx
  • src/web/content/landing.ts

Server:

  • src/server/app.ts
  • src/server/workflow/transitions.ts

Tests and snapshots:

  • tests/web.test.ts
  • tests/memory.test.ts (new)
  • tests/visual/landing.spec.ts
  • tests/visual/snapshots/run-inspector.png
  • tests/visual/snapshots/workshop-wide.png
  • tests/visual/snapshots/workshop-narrow.png
  • tests/visual/snapshots/spirit-*.png

Build budget:

  • scripts/check-budget.mjs

Documentation updated

  • README.md
  • docs/ARCHITECTURE.md
  • docs/DECISIONS.md
  • docs/IMPLEMENTATION_PLAN.md
  • docs/EVIDENCE.md
  • docs/RELEASE_NOTES.md
  • docs/CHANGELOG.md
  • docs/UX_AND_VISUAL_SYSTEM.md
  • docs/OPERATIONS_AND_RECOVERY.md
  • docs/OPENCODE_INTEGRATION.md
  • docs/LOCAL_SETUP.md
  • docs/DEMO_AND_SUBMISSION.md
  • docs/PRODUCT_BRIEF.md
  • docs/TOOL_CATALOG.md

Tests and results

  • npm run typecheck — pass
  • npm test — 184 pass, 0 fail
  • npm run build — pass; existing >500 KiB initial-chunk warning remains
  • npm run budget — pass
    • Initial JS: 195.6 KiB / 220 KiB
    • All JS: 280.7 KiB / 290 KiB
    • CSS: 17.1 KiB / 18 KiB
    • Hero total: 570.9 KiB / 640 KiB
  • npm run test:visual — 19 pass
  • npm audit --omit=dev --audit-level=high — pass; 6 moderate Sentry-path advisories remain

Known limitations

  • Permission polling is best-effort and can lag one refresh interval.
  • Advanced diagnostics are unavailable while the engine is unreachable.
  • Automated visual/accessibility checks do not replace a full screen-reader audit.
  • The all-JS budget was deliberately raised from 280 to 290 KiB for the new focused-workshop and Project memory surfaces.
  • Schema version is unchanged at v7; no migration was required.
  • .backboard/ remains untracked and untouched; the existing stash was not applied, removed, or committed.

Commit

4d811bf — refactor(ui): create a focused workshop experience

Push result

Pushed successfully to origin/main:

origin/main now points to 4d811bf.