Repository navigation
feat(web): give LastCode sidebar its own opt-in setting - #373
lastobelus wants to merge 16 commits into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a9d15de893
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
a9d15de to
6f6d7f1
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6f6d7f1085
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 90ba68b4f7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
90ba68b to
812b328
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 812b328d6c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 18bb8c2f0b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
18bb8c2 to
462e67a
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 462e67adce
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
|
Codex Review: Didn't find any major issues. Hooray! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
8fa182b to
b1ad7e4
Compare
e15ffcd to
fd6189d
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fd6189ddc9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Separate the customized LastCode project tree from the upstream legacy sidebar. Resolve the LastCode override before the independent upstream preference, preserve client persistence and import, and keep quick controls aligned with the visible mode. Carry-Group: legacy-sidebar Carry-Observation: Ownership and selection preparation; LastCode sidebar defaults off. Upstream LegacySidebar is restored from aa8c666 with current archive-command API adaptation. Model: GPT-6.1-Sol; harness: Codex.
Share the existing project-tree draft navigation block with the restored upstream legacy sidebar so invested drafts remain reachable under current draft creation behavior. Carry-Group: legacy-sidebar Model: GPT-6.1-Sol; harness: Codex.
Adapt stock legacy rows to shared worktree cleanup visibility and recovery, pass environment scratch roots into grouping, and update user guidance for the independent LastCode mode. Carry-Group: legacy-sidebar Model: GPT-6.1-Sol; harness: Codex.
Align the shared status-dot and text-marker attributes with LastCode sidebar scale selectors in compact and full-label modes. Carry-Group: legacy-sidebar Model: GPT-6.1-Sol; harness: Codex.
Point annotations and sidebar convenience documentation at LastCodeSidebar and its scale helper, retaining existing documentation URLs and capture identifiers. Carry-Group: legacy-sidebar Model: GPT-6.1-Sol; harness: Codex.
Restore persistence controls and prevent archive, deletion and project removal from bypassing the thread protection UI. Explain the LastCode override in the sidebar mode keybinding guide. Carry-Group: legacy-sidebar Model: GPT-6.1-Sol; harness: Codex.
Use the shared bulk archive action for one confirmation and consistent family handling. Let legacy users dismiss a failed archive while retaining conversations, and avoid confirming already-confirmed row actions twice. Carry-Group: legacy-sidebar Model: GPT-6.1-Sol; harness: Codex.
Warn that deleting a thread also removes its subagents, including archived conversations. Resolve project settings routes from the physical project instead of the sidebar-only No project group. Carry-Group: legacy-sidebar Model: GPT-6.1-Sol; harness: Codex.
Activate thread navigation only from the focused row so nested archive controls and links retain their native keyboard behavior. Add focused annotation-trigger coverage and align LastCode focus rings with the current inset styling rule. Carry-Group: legacy-sidebar Implemented by GPT-6.1 Sol through the Codex harness.
Keep legacy metadata visible when no archive button replaces it, omit ineffective synthetic project menu actions, and keep the overridden sidebar toggle focusable so its explanation is accessible. Carry-Group: legacy-sidebar Implemented by GPT-6.1 Sol through the Codex harness.
Omit the project-count badge for the synthetic No project group and restore metadata when an inline archive confirmation loses eligibility. Carry-Group: legacy-sidebar Implemented by GPT-6.1 Sol through the Codex harness.
Keep the default-off sidebar implementation out of the eager chat route graph. Show sidebar chrome during its first load without suspending the chat or upstream sidebar paths. Carry-Group: legacy-sidebar Implemented by GPT-6.1 Sol through the Codex harness.
Build project and thread menus through small pure helpers while retaining action execution in the sidebar. Share thread mutation classification between menu availability and the destination permission check. Carry-Group: legacy-sidebar
f4b719e to
4d4a248
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4d4a2489dc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Attribute the secondary Project Action indicator to the LastCode sidebar rather than the upstream legacy sidebar. Carry-Group: legacy-sidebar
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: efa929ab27
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Keep the upstream sidebar shortcut from persisting an empty patch while LastCode is active. Only describe persistence as the removal blocker for protected grouped members. Carry-Group: legacy-sidebar
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2e97087c59
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Describe the default inbox, independent upstream choice and limited sidebar acceptance coverage in the landing-page summary. Carry-Group: legacy-sidebar
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8ab94dfdb5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| * both factors. | ||
| */ | ||
| export function legacySidebarScaleStyle(scale: LegacySidebarScale): LegacySidebarScaleStyle { | ||
| export function lastcodeSidebarScaleStyle(scale: LegacySidebarScale): LastCodeSidebarScaleStyle { |
There was a problem hiding this comment.
Update the sidebar scaling document
Moving this helper to the LastCode-only sidebar leaves docs/lastcode/legacy-sidebar-scaling-plan.md factually inverted: lines 5–13 and 73–89 still specify and validate scaling the upstream legacy sidebar, while LegacySidebar.tsx no longer applies any scale. Maintainers following that checked-in acceptance and QA guidance will test the wrong surface, so rewrite or remove the obsolete plan as part of this split.
AGENTS.md reference: AGENTS.md:L143-L143
Useful? React with 👍 / 👎.
The customized project tree was selected through the upstream legacy preference. Give it the LastCodeSidebar name and its own default-off LastCode setting, preserving the independent upstream choice: LastCode on always selects our tree; LastCode off selects genuine upstream legacy or inbox/v2 using the upstream flag. Existing users with the legacy preference enabled will see the stock upstream tree until they enable Settings → LastCode → Appearance → LastCode sidebar.
Preserve scale and family-collapse storage, Settings/search/quick controls, keybindings, new-thread routing and desktop-import preferences. Adapt the restored upstream legacy tree to current shared APIs for drafts, load balancing, cleanup recovery, persistent threads, archive confirmation/failure recovery and project settings. Nested archive controls and links retain keyboard activation without navigating their containing row. Synthetic No project groups omit ineffective rename/group controls and the project-count badge. The overridden mode control stays focusable so its explanation is available. Lazy-load the opt-in LastCode implementation only when selected; keep chat and upstream sidebar paths outside its loading boundary. Build LastCode project/thread menus through small pure helpers and share mutation classification between menu availability and the destination permission check.
Validation: 607 focused tests across 23 files, scoped format/lint and web/desktop/contracts typechecks pass; existing React Compiler warnings remain. The production manifest confirms a separate dynamic LastCode sidebar entry. Astra High and Opus 5.5 High reviewed the final menu refactor cleanly. Refresh onto ab050f8 preserves every PR-changed file blob. Quick local CI passes exact head 8ab94df on that base. The follow-up guide correction names the LastCode sidebar for the additional Project Action indicator; production/test files are unchanged. The upstream mode shortcut now avoids settings writes while LastCode is active, and grouped removal labels distinguish persistence protection from read-only permissions. Fifteen focused tests, 90 finite cases using the actual keyboard handler with stubbed command resolution, scoped lint and web typecheck pass for these repairs. Astra High reviewed the exact repair head cleanly; Opus was skipped by the cached quota gate. The landing-page summary now distinguishes the default inbox from the optional LastCode sidebar and independent upstream legacy choice; production/test files are unchanged by this documentation correction. Current-head GitHub CI and hosted Codex review are pending.
At the accepted pre-repair source, the bounded menu refactor improved whole-file LastCodeSidebar health from 2.49 to 2.54, with both extracted production helpers scoring 10. Its exact five-file delta and staged checks passed with 5 eligible/5 checked. Those measurements bind to the pre-repair source and are retained as historical evidence. They do not clear the full PR health gate: the full-PR strict check fails with warnings and 36 eligible/36 checked, retained without waiver. No wholesale rewrite or repository-wide health improvement is claimed.
Automated integrated checks cover settings/selection, family navigation and archive/restore, annotations, persistence protection, creator routing, menus, No project and lazy loading. Read-only/multiple-environment grouped routes, actual handoffs, desktop IPC, visual latency, public-safe before/after images and manual acceptance remain outstanding. This PR is ready for hosted review; no merge is assigned.
Model: GPT-6.1 Sol; harness: Codex.