Skip to content

feat(web): give LastCode sidebar its own opt-in setting - #373

Open
lastobelus wants to merge 16 commits into
lastcode/mainfrom
lastcode/sidebar-ownership-gen7
Open

lastobelus wants to merge 16 commits into
lastcode/mainfrom
lastcode/sidebar-ownership-gen7

Conversation

@lastobelus

@lastobelus lastobelus commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

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.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-11T04:00:48.184108Z 8ab94df Manual request
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread apps/web/src/components/LegacySidebar.tsx Outdated
Comment thread apps/web/src/components/LegacySidebar.tsx
Comment thread apps/web/src/components/settings/LastCodeSettings.tsx
@lastobelus
lastobelus force-pushed the lastcode/sidebar-ownership-gen7 branch from a9d15de to 6f6d7f1 Compare October 10, 2026 05:12
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread apps/web/src/index.css
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread apps/web/src/lastcodeSidebarScale.ts
@lastobelus
lastobelus force-pushed the lastcode/sidebar-ownership-gen7 branch from 90ba68b to 812b328 Compare October 10, 2026 05:24
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread apps/web/src/components/LegacySidebar.tsx Outdated
Comment thread apps/web/src/sidebarMode.ts
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread apps/web/src/components/LegacySidebar.tsx Outdated
Comment thread apps/web/src/components/LegacySidebar.tsx Outdated
@lastobelus
lastobelus force-pushed the lastcode/sidebar-ownership-gen7 branch from 18bb8c2 to 462e67a Compare October 10, 2026 05:52
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread apps/web/src/components/LegacySidebar.tsx Outdated
Comment thread apps/web/src/components/LegacySidebar.tsx Outdated
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Hooray!

Reviewed commit: e15ffcd31e

ℹ️ 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".

@lastobelus
lastobelus force-pushed the lastcode/main branch 3 times, most recently from 8fa182b to b1ad7e4 Compare October 10, 2026 12:51
@lastobelus
lastobelus force-pushed the lastcode/sidebar-ownership-gen7 branch from e15ffcd to fd6189d Compare October 11, 2026 02:03
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread apps/web/src/components/AppSidebarLayout.tsx Outdated
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

Reviewed commit: f4b719e6dd

ℹ️ 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".

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
@lastobelus
lastobelus force-pushed the lastcode/sidebar-ownership-gen7 branch from f4b719e to 4d4a248 Compare October 11, 2026 03:23
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread apps/web/src/components/settings/LastCodeSettings.tsx
Attribute the secondary Project Action indicator to the LastCode sidebar rather than the upstream legacy sidebar.

Carry-Group: legacy-sidebar
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread apps/web/src/sidebarMode.ts
Comment thread apps/web/src/components/sidebar/lastcodeProjectMenu.ts Outdated
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
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread apps/web/src/components/settings/LastCodeSettings.tsx
Describe the default inbox, independent upstream choice and limited sidebar acceptance coverage in the landing-page summary.

Carry-Group: legacy-sidebar
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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 {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

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