Skip to content

[codex] feat(dashboard): restructure curation tabs and surface LCM payload GC#214

Merged
ScriptedAlchemy merged 8 commits into
masterfrom
feat/dashboard-ux-improvements
Jul 3, 2026
Merged

[codex] feat(dashboard): restructure curation tabs and surface LCM payload GC#214
ScriptedAlchemy merged 8 commits into
masterfrom
feat/dashboard-ux-improvements

Conversation

@ScriptedAlchemy

Copy link
Copy Markdown
Owner

Summary

  • split the holographic curation surface into Plan, Automation, Proposals, History, and Activity tabs
  • add proposal-specific pending/resolved handling and keep automation run controls discoverable
  • add an LCM Store Maintenance card for payload health plus preview/tokened GC apply
  • make payload GC return an empty run when the payload directory does not exist yet

Validation

  • npm test -- --runInBand (dashboard)
  • TMPDIR=/tmp CARGO_TARGET_DIR=/tmp/tracedecay-dashboard-ux-target cargo test -p tracedecay --test session_suite lcm_query::status_reports_payload_gc_run_metadata_after_apply -- --exact --nocapture

Notes

  • The three local research docs currently in docs/ are not included here; they are broader agent-memory / Hermes parity / skill-adoption research and should be reviewed as a separate docs/research PR.

@changeset-bot

changeset-bot Bot commented Jul 2, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 2b9978b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

The curation panel crammed scheduler, config, run controls, proposals,
skills, and the oplog into one ~6800px pane behind a sub-tab named
"History". Split it into Plan / Automation / Proposals / History /
Activity so automation runs and approvals are discoverable; the
Proposals tab badges its pending count and resolved fact proposals
collapse behind a disclosure instead of rendering disabled buttons.

Add a Store Maintenance card to the LCM tab exposing the previously
UI-less payloads/health and payloads/gc endpoints (preview + tokened
apply), and fix payload GC to report an empty run instead of an IO
error when a store has no lcm-payloads directory yet.
@ScriptedAlchemy ScriptedAlchemy force-pushed the feat/dashboard-ux-improvements branch from e4a2bb4 to ba57c31 Compare July 2, 2026 09:37
@ScriptedAlchemy ScriptedAlchemy marked this pull request as ready for review July 3, 2026 03:21
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

ScriptedAlchemy and others added 2 commits July 3, 2026 03:38
- Proposals tab badge now reuses usePendingAutomationCounts (the same
  server-side count the outer Curation badge uses) instead of deriving
  from locally loaded lists, which also drops the mount-time
  prefetch effect and its eslint suppression
- extract shared CurationTabPanel scaffold (tabpanel/aria wiring,
  header, optional Refresh, error banner) used by the Automation,
  Proposals, and History panels; the Proposals panel drops its header
  Refresh since both sections it contains have their own
- share the state pill (StateBadge) between managed skills and fact
  proposals instead of three copies of the markup
- FactProposalsSection: drop the dead pending prop, sort once before
  partitioning, flatten the nested empty-state conditionals
- StoreHealth: replace the reloadToken counter with a direct load
  callback, hoist the totals null-guard, simplify the App.tsx condition
- collapse triplicated test render helpers into openTab()

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The early-return for a missing payload directory skipped the phases
that only need the database: a store whose payload dir was deleted but
still has externalized metadata reported 'nothing to reclaim' while the
health endpoint reported missing payloads, and stale gc marks or
dangling placeholders were never cleaned. existing_payload_dir_opt now
reports the lazily-created directory as absent instead of erroring, the
filesystem scan phases treat that as an empty listing, and
delete_external_payload still performs its DB-side cleanup.

Also keys the curation tab-load effects on tab activation alone via a
loader ref, so selecting a skill (which recreates the loaders) no
longer refetches proposals, skills, runs, and scheduler status mid-tab.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ScriptedAlchemy ScriptedAlchemy merged commit b255633 into master Jul 3, 2026
14 checks passed
@ScriptedAlchemy ScriptedAlchemy deleted the feat/dashboard-ux-improvements branch July 4, 2026 01:13
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.

1 participant