Skip to content

Add compact experiment Routes navigation to workspace tools - #616

Draft
yuzhang-zhong wants to merge 6 commits into
alphaXiv:mainfrom
yuzhang-zhong:feat/compact-experiment-routes
Draft

yuzhang-zhong wants to merge 6 commits into
alphaXiv:mainfrom
yuzhang-zhong:feat/compact-experiment-routes

Conversation

@yuzhang-zhong

@yuzhang-zhong yuzhang-zhong commented Oct 10, 2026 •

Copy link
Copy Markdown

Closes #615

Summary

Add a Routes button beside Experiments and a collapsible lineage tree in the existing Experiments pane. Table and the canvas Tree remain available. Routes follows existing parentExperimentId edges, retains required archived and other-task ancestors as labeled context, and marks unavailable parents or invalid lineage.

Routes uses the shared status badges, with live or cancelling attempts taking precedence over newer terminal attempts. It supports keyboard navigation, folding, full-title tooltips, scrolling, and project/task-specific browser persistence for folds and selection. Five Routes labels are included in all nine locales.

Merged main at d06949ce into the existing branch in 9e3c9000. The upstream responsive panel, sidebar focus handling, and tool menus are preserved. Table-only sort and lineage controls stay hidden while Routes is selected. UI assets are now generated locally and ignored, matching upstream's current policy.

The scope remains compact tree navigation. The History view and attempt details in #570 remain separate. Routes mode is local to the mounted UI, and the saved Table/Tree preference remains compatible.

Validation on October 28

  • Node 22.15.0 and pnpm 10.34.9; frozen-lockfile dependency install.
  • Full UI suite: 521 passed, 0 failed.
  • Localization/style checks, standalone TypeScript, pnpm build, and git diff --check passed.
  • Fresh browser checks used the actual production App with a synthetic local API. Routes navigation, selection, fold persistence through reload, keyboard expansion/movement, and repeated Table/Tree/Routes switching passed. Sort and lineage controls appeared only in Table.
  • Responsive checks passed at the new upstream boundaries: the panel stacks at 640px; the sidebar hides at 1039px and returns at 1040px; the visible panel clamps to 360px at that threshold and restores its saved 500px width when space permits. No page overflow or console errors were observed in these checks.
  • Complete diff and commit-metadata review passed. The PR contains 15 intended source/test/locale files, with no credentials, private emails, local paths, fixtures, screenshots, or generated assets. Branch history is preserved, and author/committer use the verified GitHub noreply identity.

Current CI run reports action_required with zero jobs. Hosted CI has not passed; maintainer action is required. This PR remains draft.

Limits

Browser checks use synthetic data and the real production frontend, without a Rust API server, native desktop build, or real research run. Rust and dev-slot helper checks were not run for this UI-only contribution. The Windows dev-slot lifecycle helper rejects Windows, so browser validation uses an isolated synthetic HTTP fixture outside the repository. Screenshots remain local.

The previously documented behavior remains: pending experiment data shows the empty state until loaded; a row double-click navigates to a preview on its first click, while Enter, middle-click, and content-tab double-click provide keep-open gestures. Cyclic lineage is covered by Routes model/render tests because the upstream archive menu loops on cyclic ancestry before Routes mounts in the full App.

Codex assisted with the implementation, reconciliation, validation, and this PR update. Non-English additions are machine translated.

@yuzhang-zhong
yuzhang-zhong force-pushed the feat/compact-experiment-routes branch from e37fa8e to 5c179b2 Compare October 10, 2026 02:39

Copy link
Copy Markdown
Author

Merged main at 603558c into this branch in 74fbc41 and regenerated ui/dist. App.tsx merged cleanly; the conflicts were in generated assets. The Routes controls and upstream palette changes are both preserved.

Checks on the merged tree:

  • 266 UI tests passed, plus 12 additional SSR assertions using the actual Routes and workspace-toolbar components with synthetic data
  • Localization/style lint, TypeScript, and production build passed; a second Vite build left ui/dist unchanged
  • Chart tests: 4 passed. Release-note tests: 6 passed. git diff --check passed

This run used Node 24 and pnpm 10. Rust checks were not run because the environment has no Rust toolchain. Dev-slot tests were 8/9; the remaining test could not start sqlite3 because the executable is missing. Browser interaction checks were not rerun: Chromium was blocked before startup by the execution environment.

The linked-issue check passed. CI and Release currently report action_required; no CI jobs have run. Keeping this as a draft.

Preserve upstream workspace layout and localization keys. Hide table-only controls in Routes, add regression coverage, and regenerate the production UI assets.
Keep upstream sidebar and tool-menu changes, retain Routes controls and locale labels, and follow the source-only UI asset policy.

This branch has not been deployed

No deployments
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.

Add a compact, collapsible experiment Routes entry to the workspace tools

1 participant