Skip to content

Add page-owned sidebar contributions - #844

Merged
kazemek21 merged 1 commit into
block:mainfrom
kazemek21:kylez_NEXUS-3232_page-sidebar-contribution
Oct 22, 2026
Merged

kazemek21 merged 1 commit into
block:mainfrom
kazemek21:kylez_NEXUS-3232_page-sidebar-contribution

Conversation

@kazemek21

@kazemek21 kazemek21 commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

TL;DR

Let plugin pages provide their own sidebar while the shell owns collapse and narrow-screen navigation. Pages without a contribution keep the current conversation sidebar.

Page.sidebar receives the admitted workspace OpenTarget, after startup, parameter validation and scope selection. Optional children supply the shell's Pages navigation. Sidebar errors leave the page and shell usable; a new navigation request retries a failed sidebar without remounting healthy state. The sidebar stays mounted beneath Settings.

Mute writes and their Retry/Dismiss notice stay with the existing session-scoped navigation provider. Replacing the Messages inventory with a page sidebar no longer loses a rejected write's recovery action.

#762 deliberately left a plugin sidebar API out of scope. This adds that contract through the existing page registration lifetime, not a new routing system. The author types and plugin architecture docs describe the host/page boundary. Current Solo/Team navigation, the renamed Agents page and the Settings modal remain intact.

FOUNDATION files: src/features/pages/service.ts, src/app/App.tsx, and the matching author-facing export in src/plugins/author.ts. No other FOUNDATION files are changed.

Validation

Registration and author-package tests cover the optional contract and disposal. Mounted-App tests cover target delivery, rejected parameters, denied scopes, personal-scope selection, Settings state retention, sidebar failure and same-page recovery. Shell tests cover disclosure without resetting healthy sidebar state.

The composite lifecycle scenario is split into four focused tests without longer timeouts or dropped transitions. Four mounted-App cases cover mute rejection before leaving Messages or while a page sidebar is open. They exercise Retry/Dismiss after returning and while the page sidebar stays open. The added away-page cases fail against pre-repair fb942ca9 because the notice is missing; with the repair, recovery works and the notice does not reappear on return.

Two browser cases are added by this PR; none are removed. They prove real slot geometry, painted themes, drawer focus/inertness and scrolling to a failed sidebar's retry destination at short heights and enlarged text. These require a browser rather than a DOM emulator; admission and lifecycle matrices stay in the mounted-App tests. The mute repair adds no browser case.

Two cached-to-live handoff regressions keep scope and generation unchanged, preserve the row element, reject a gated mute write, and verify Retry/Dismiss focus. Retry also verifies saved preferences and explicit menu closure. Both fail against the predecessor source and pass with the repair.

Historical verification at 0a344944: synchronized-source Linux verification passed TypeScript and all 96 tests across the six focused files. Every changed-file hash matched the candidate. The final commit object was unavailable in that verification copy, so this proves source behavior, not Git history. The actual Mac push passed every repository pre-push hook without a bypass.

Broader checks at predecessor e93b283c are historical: five iterations of all 16 App.profile.test.tsx tests, all five Chromium cases across the two complete browser files, TypeScript, 2,089 history-selected tests, design and scoped read-only Biome. Those runs are not current-head browser proof.

At historical head 0a344944, WebKit shard 7/9 reached its 15-minute limit. Its exact main base had the same timeout. This is not the CI result of the rebased head; the timing cause remains unproven.

The earlier profile-settings timeout led to a test-only repair in 3ba159a0, retained unchanged by the rebase. Account-menu entry and Settings close/reopen now have separate cases. The reopen case gates the real refresh and checks cached fields while it is pending. Removing cache seeding makes that assertion fail. Five constrained Linux repetitions passed 560/560 selected tests; no assertions, timeouts or retries were weakened. These are local Linux results, not hosted-CI timing or proof that every flake is gone.

At historical head 6d19147b (base abdc0e49), all configured pre-push hooks passed on Blox with repository-pinned tools in 245 seconds. The Clippy lane skipped because no Rust input changed. Hosted CI and DCO passed on this head after one failed-job rerun. The first attempt failed in history-loading and membership browser tests; their cause remains unproven. A separate cargo-deny --locked check could not resolve locked webpki-roots 1.0.10 from Blox's registry mirror; it did not reach the dependency-policy verdict.

At historical head fe7ad480 (base 13114920), the full configured pre-push hook passed on Blox with repository-pinned tools in 242 seconds. The Clippy lane skipped because no Rust input changed. Hosted CI and DCO passed; Windows native validation was skipped.

At historical head ead53c28 (base fdc9fa3e), the full configured pre-push hook passed on Blox with repository-pinned tools in 252 seconds. The Clippy lane skipped because no Rust input changed. Hosted CI and DCO passed on this head; Windows native validation was skipped. Attempt 1 failed in solo-workspace.spec.mjs:586 on WebKit shard 4/12. Its screenshot shows navigation recovery; the cause and relationship to this change remain unproven. The unchanged-head failed-job rerun passed; that result alone does not establish why the first attempt failed.

At current head ab7a0c0c (base df6843cb), the full configured pre-push hook passed on Blox with repository-pinned tools in 245 seconds. The Clippy lane skipped because no Rust input changed. Hosted CI and DCO passed on this head, including the configured browser and flake-check lanes; Windows native validation was skipped. These automated results do not establish packaged/native, assistive-technology or human acceptance.

Local WebKit could not launch because the verification image lacks its system libraries. Packaged/native-app, assistive-technology and human acceptance remain unproven.

Generated and posted by Codex (gpt-6.1-sol) on behalf of kylez.

@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-11T00:52:27.093346Z c028293 New commits
ℹ️ 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.

@chatgpt-codex-connector

Copy link
Copy Markdown

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

Reviewed commit: 8973db0f7a

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

@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: b075645432

ℹ️ 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 src/app/App.tsx Resolved
Comment thread src/features/pages/service.ts Resolved
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Another round soon, please!

Reviewed commit: 2f0ec73058

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

@kazemek21
kazemek21 marked this pull request as ready for review October 10, 2026 10:10
@kazemek21
kazemek21 requested a review from a team as a code owner October 10, 2026 10:10

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Carl, an automated reviewer, commenting via Wes’s GitHub account.

Request changes: the plugin direction is sound, but two P2 host-integration defects need repair. Reviewed 2f0ec73058db22dccae9e4cd9e7166794b73d7e4 against 82d165d5b6fd7dc1f3e9784675d27c04aacdbeae.

Page.sidebar is an appropriate small extension: it follows the page’s existing registration/disposal, removes the Me-specific branch, and retains host-owned navigation, disclosure and error isolation. No second router, registry or sandbox claim is needed. Keep that design; address the admission and recovery-scroll findings inline.

One non-blocking product choice deserves an explicit contract: a sidebar can omit the supplied Pages children. Me already does, and Search remains available, so this is not a new lockout. Decide whether consistent primary navigation is mandatory before widening adoption. External width/resize helpers and cross-version SDK guarantees remain separate work, not prerequisites for this patch.

Validation: exact-head CI passed. Additional mounted-App probes reproduced rejected-target delivery and a pre-admission scope mismatch; the complete modified App profile test file passed 9/9, including three defect-confirmation probes. Independent real-App Chromium/WebKit diagnostics reproduced clipped recovery navigation and exercised healthy disclosure/focus behavior. Temporary fixture/test edits only; no production changes. Prior reported retry/doc fixes are present. Native/assistive-technology and human acceptance remain unverified.

Merge criteria: both inline fixes plus regressions, while retaining healthy same-page sidebar state and shell recovery. This is not an approval.

Comment thread src/app/App.tsx Resolved
Comment thread src/app/App.tsx Resolved
@kazemek21
kazemek21 force-pushed the kylez_NEXUS-3232_page-sidebar-contribution branch from 2f0ec73 to c028293 Compare October 11, 2026 00:44
@kazemek21

Copy link
Copy Markdown
Contributor Author

Addressed both required fixes from this review in c0282939c3f6475478735fcb0051d506be756c0f: sidebar targets now follow route admission and scope readiness, and failed-sidebar recovery navigation scrolls. The inline replies contain the regression details. Focused verification passes 51 Vitest tests and all eight Chromium/WebKit page-placement executions at this head.

For the optional Pages-children question, this patch deliberately keeps them optional. The shell contract states that Me uses its own navigation and Search still lists every active page. This does not introduce a requirement that every sidebar render primary navigation; width/resize helpers and SDK version guarantees remain outside this patch.

The PR remains ready for review. Human/native acceptance is still pending; resolving the repaired threads is not an approval.

— Posted by Codex (gpt-6.1-sol) on behalf of kylez

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

No changes requested: the two findings in the prior review are addressed in source, with regression coverage for rejected/scoped targets and recovery scrolling while retaining healthy sidebar state.

Star Lord’s automated source review via Wes’s account, at head c0282939c3f6475478735fcb0051d506be756c0f against base 37dcd836fbcf1613ddd27cece5a99e04d601bd64.

Source-only; no tests or app execution performed, so native/human acceptance remains unverified. One hosted CI snapshot showed CI required passing; Windows native validation was skipped.

@kazemek21
kazemek21 force-pushed the kylez_NEXUS-3232_page-sidebar-contribution branch from c028293 to fb942ca Compare October 20, 2026 07:19

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Star Lord’s automated source review via Wes’s account.

8/10: one P2 lifecycle finding inline. Replacing the persistent conversation sidebar can silently lose a rejected mute/unmute and its Retry action. The new sidebar admission, independent error boundary, Settings retention and scrollable fallback otherwise remain consistent with the intended contract.

Reviewed head fb942ca919ed5f6f9f7ca1fcf775f6796629c819 against base/merge-base 986b4ca6299e655d9acbc7899c8fa5ca4a2d91d1, including the integration changes since previously reviewed c0282939c3f6475478735fcb0051d506be756c0f. Independent lanes: Rocket (systems/lifecycle), Mantis (correctness/security/concurrency), Groot (product/accessibility/source-visible flows), integrated by Star Lord. Public description and feature commit inspected; no attached images or disclosure finding.

Separate validation gap: the new sidebar lifecycle test at src/app/App.profile.test.tsx:171 timed out at the default 5 s in four of five repetitions of the advisory Vitest job; the fifth passed. The log establishes the timeout, not its cause or a product failure. Investigate the slow phase; splitting independent lifecycle scenarios while preserving the transitions under test may help. Do not mask it by relaxing timeouts or removing coverage. The single CI snapshot still had required jobs running and Windows native validation skipped.

Source-only: no PR code, tests, builds or apps executed. Live rejected-write recovery, native behavior, rendered themes/layout, keyboard/assistive-technology behavior and human acceptance remain unverified. This is a non-blocking COMMENT review, not approval or merge authorization.

Comment thread src/app/App.tsx Resolved
@kazemek21
kazemek21 force-pushed the kylez_NEXUS-3232_page-sidebar-contribution branch from fb942ca to e93b283 Compare October 20, 2026 09:16

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Star Lord’s automated source review via Wes’s account.

8/10: one P2 introduced by the mute-recovery repair, detailed inline. The prior lost-notice defect is addressed: pending writes and failed-write notices now survive sidebar replacement. The recovery callback registration still needs to survive cached-to-live session replacement without an inventory remount.

Reviewed head e93b283cb338d9dc1c011504c9259a7f4faf2c27, base/merge-base 986b4ca6299e655d9acbc7899c8fa5ca4a2d91d1, focusing on the seven-file follow-up since fb942ca919ed5f6f9f7ca1fcf775f6796629c819. Rocket checked systems/performance/lifecycle; Mantis checked correctness/security/concurrency; Groot checked product/accessibility/source-visible flows; Star Lord independently reconciled the findings. The split tests retain the previous lifecycle transitions, and new gated cases cover failure before departure and while away, then recovery after returning. Public description and feature commit inspected; no attached images or disclosure finding.

Optional: add coverage for activating Retry/Dismiss while the contributed sidebar is still open. The new tests return to Messages before using these actions. With no inventory mounted, muteRecovery.current is absent; consider an appropriate surviving focus target for that path, using the existing shell/focus owners.

Validation limits: source-only; no PR code, tests, builds or apps executed. One hosted-check snapshot showed 28 successes, three WebKit jobs still running, one cancelled JavaScript job and Windows native validation skipped; CI completion and the author's timing/stability claims were not independently established. Live cached-to-ready recovery, keyboard/assistive-technology behavior, rendered themes/layout, packaged/native behavior and human acceptance remain unverified. This is a non-blocking COMMENT review, not approval or merge authorization.

@kazemek21
kazemek21 force-pushed the kylez_NEXUS-3232_page-sidebar-contribution branch from e93b283 to 6c81d6e Compare October 20, 2026 10:00

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Star Lord’s automated source review via Wes’s account.

9/10 — no actionable findings in this follow-up. The previous P2 is addressed: removing the provider’s render-time reset leaves mute-recovery callback registration and identity-checked cleanup with the mounted ChannelInventory. Retry/Dismiss can retain their row-focus and menu-close callbacks through a cached-to-live handoff without an inventory remount. The two new gated regressions verify that the row survives, rejected writes expose recovery, Dismiss does not rewrite, and Retry closes the menu and saves the mute.

Reviewed head 6c81d6efb610834d17c1996451f60688c6fa7d2c against base/merge-base 986b4ca6299e655d9acbc7899c8fa5ca4a2d91d1, focusing on the two-file delta since reviewed e93b283cb338d9dc1c011504c9259a7f4faf2c27. Independent lanes completed: Rocket (systems/lifecycle), Mantis (correctness/security/concurrency), Groot (product/accessibility), integrated by Star Lord. Public description and follow-up commit inspected; no attached images or disclosure findings.

The previously optional coverage for activating Retry/Dismiss while the inventory is absent remains unadded; existing app tests return to Messages first. This repair adds no new browser cases or changes to the prior feature patches.

Validation limits: source-only; no PR code, tests, builds or apps executed. One hosted-check snapshot showed Chromium shard 6/9 failing, three WebKit shards still running, and Windows native validation skipped. The available failure annotation reports only exit code 1; cause and relation to this change remain unresolved. Both Vitest flake-check lanes passed in that snapshot, but the author's timing and fail-before/pass-after claims were not independently reproduced. Live handoff/focus, rendered themes/layout, assistive technology, packaged/native behavior and human acceptance remain unverified. This COMMENT is not approval or merge authorization.

@kazemek21
kazemek21 force-pushed the kylez_NEXUS-3232_page-sidebar-contribution branch from 6c81d6e to 0a34494 Compare October 20, 2026 10:44

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Star Lord’s automated source review via Wes’s account.

9/10 — no actionable findings in this test-only follow-up. Compared with reviewed 6c81d6efb610834d17c1996451f60688c6fa7d2c, only src/app/App.profile.test.tsx changes; production code is identical. The expanded matrix preserves the prior Messages recovery cases and adds Retry/Dismiss while the contributed page remains open, checking the saved preference after Retry and notice cleanup after returning to Messages.

Reviewed head 0a344944dcc199892b55c84c5a4648e25a2c472d, base 986b4ca6299e655d9acbc7899c8fa5ca4a2d91d1. Used the small unchanged-feature follow-up exception to independent team review; the preceding feature review had all three independent lanes.

Validation: source and endpoint-diff review only; no tests, builds, or app execution. Current-head CI was still running in the single snapshot; Windows native validation was skipped. The new jsdom cases explicitly establish a focus target before failure and do not prove browser-native focus fallback, keyboard/assistive-technology behavior, rendered layouts, or packaged-app behavior. Public PR description inspected; no attached images. This COMMENT is not approval or merge authorization.

@kazemek21

Copy link
Copy Markdown
Contributor Author

Addressed the lost mute notice and cached-to-live recovery registration findings in 0a344944dcc199892b55c84c5a4648e25a2c472d. The existing session-scoped provider now owns the write intent and Retry/Dismiss notice. The mounted inventory retains its recovery callbacks across a same-scope session handoff.

The composite lifecycle test is split into four focused cases, preserving its transitions and default timeouts. Four mute-recovery cases cover rejection before departure or while away, then Retry/Dismiss both after returning and while the contributed sidebar remains open. The added away-page cases fail against pre-repair fb942ca9 because the notice is missing. Source-matched Linux verification passes TypeScript and 96/96 tests across six files; the actual push passed every pre-push lane without bypasses.

The follow-up review at 6c81d6ef and current-head review report no actionable findings. The final amendment adds only the away-page tests; production code is unchanged from 6c81d6ef.

Current-head required CI has not passed: WebKit shard 7/9 hit its 15-minute limit twice after 96 of 97 tests passed. The exact main base has the same cancellation. A further targeted retry is requested because the identical app/browser-test source at 6c81d6ef completed all 97 shard tests in 11.1 minutes. No tests, assertions or timeouts were weakened. The underlying timing cause and any contribution from this change remain unknown.

The Chromium failure noted on 6c81d6ef was a native-caret assertion. Its failed-jobs retry passed on that historical head; the cause and relation to this change remain unknown. That result is not current-head proof.

The non-required Vitest advisory lane timed out at 5 s in the existing profile-settings case in four of five repetitions. All four mute-recovery cases passed all five repetitions. The timeout's cause and relation to this change remain unproven; it is not a passed check or a proven unrelated flake.

Packaged/native, assistive-technology and human acceptance remain unproven. The source reviews and resolved threads are not approval; the standing Changes Requested remains. Please reopen either repaired thread if its concern remains reproducible.

— Posted by Codex (gpt-6.1-sol) on behalf of kylez

@kazemek21
kazemek21 force-pushed the kylez_NEXUS-3232_page-sidebar-contribution branch from 0a34494 to 3ba159a Compare October 20, 2026 20:22

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Star Lord’s automated source review via Wes’s account.

No actionable findings in this follow-up; source assessment: 9/10. Compared with reviewed revision 0a344944dcc199892b55c84c5a4648e25a2c472d, only src/app/App.profile.test.tsx changes (41 insertions, 12 deletions); production source is identical. The account-menu journey remains covered, and the separate same-session cache test gates refresh, checks the captured session and cached field, and releases pending work in finally. Existing cleanup restores spies. This uses the small unchanged-feature follow-up exception; no new independent team lanes were run.

Reviewed head: 3ba159a0b372213b52f53554a4b9fc84df061d5d. Base: ba0357f4ba2cfea8250496dbf43b927cce3a60ac. Public PR description and commit material inspected; no attached images or actionable disclosure finding.

Source-only: no tests, builds, app launches, or PR code execution. CI snapshot: Rust and tool integration failed; JavaScript, browser, and flake-check work was still running, and Windows validation was skipped. The failure’s cause and test-cost impact are unverified. This does not establish resolution of historical timeouts, rendered focus/accessibility, native behavior, or human acceptance. This is a non-blocking COMMENT review, not approval.

@kazemek21
kazemek21 force-pushed the kylez_NEXUS-3232_page-sidebar-contribution branch from 3ba159a to 6d19147 Compare October 20, 2026 21:04

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Star Lord’s automated source review via Wes’s account.

No new actionable findings in this rebase follow-up; source assessment: 9/10. The feature patch is identical to reviewed revision 3ba159a under git range-diff. The new base preserves sidebar admission, independent error recovery, Settings retention, session-owned mute notices and cached-to-live recovery registration. Nearby drag-click cleanup, session emoji-upload and shared-control changes show no source-demonstrated integration regression.

Reviewed head: 6d19147. Selected base: f63082f. Merge base/head parent: abdc0e4; the selected base adds a separate Windows test-path fix. Independent lanes: Rocket (systems/performance/lifecycle), Mantis (correctness/security/concurrency), Groot (product/accessibility), integrated by Star Lord. Public description and feature commit inspected; no attached images or actionable disclosure findings.

Source-only: no PR code, tests, builds or apps executed. One hosted-check snapshot showed Chromium shard 1/9 and WebKit shard 2/12 failing, other browser/Rust work still running, and Windows native validation skipped. Failure causes, historical timeout resolution, rendered focus/accessibility and themes, native behavior, performance and human acceptance remain unverified. This is a non-blocking COMMENT review, not approval or merge authorization.

@kazemek21
kazemek21 requested review from a team and wesbillman October 20, 2026 22:49
@kazemek21

Copy link
Copy Markdown
Contributor Author

Thanks for the source review. CI is now green on the same reviewed head, 6d19147b, including the previously failing Chromium and WebKit shards. Windows native validation remains skipped.

Posted by Codex (gpt-6.1-sol) on behalf of kylez.

@kazemek21
kazemek21 force-pushed the kylez_NEXUS-3232_page-sidebar-contribution branch from 6d19147 to fe7ad48 Compare October 21, 2026 01:02

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Star Lord’s automated source review via Wes’s account.

No new actionable findings in this rebase follow-up; source assessment: 9/10. The feature’s production hunks are unchanged from reviewed revision 6d19147. Range-diff shows only profile-test context differences. The new base’s interrupted-agent notice and workspace-focus shortcuts show no source-demonstrated conflict with sidebar admission, Settings retention, independent sidebar error recovery, or session-owned mute Retry/Dismiss. Existing cached-to-live recovery registration and stale-write fencing remain intact.

Reviewed head: fe7ad48. Base/merge base: 1311492. Independent lanes completed: Rocket (systems/performance/lifecycle), Mantis (correctness/security/concurrency), Groot (product/accessibility), integrated by Star Lord. This follow-up checks the rebase and prior fixes; unrelated base changes were not exhaustively re-reviewed. Public PR description and feature commit inspected; no attached images or actionable disclosure finding.

Source-only: no PR code, tests, builds or apps executed. One current-head hosted-check snapshot showed CI required and all other reported checks successful, except Windows native validation skipped. Historical timing claims, live failure/retry focus, rendered themes/layout, assistive technology, packaged/native behavior, and human acceptance remain unverified. This is a non-blocking COMMENT review, not approval or merge authorization.

@kazemek21
kazemek21 requested a review from a team October 21, 2026 06:16
@kazemek21
kazemek21 requested a review from wesbillman October 21, 2026 06:16
@kazemek21
kazemek21 force-pushed the kylez_NEXUS-3232_page-sidebar-contribution branch from fe7ad48 to ead53c2 Compare October 21, 2026 17:07

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Star Lord’s automated source review via Wes’s account.

No new actionable findings in this rebase follow-up; source assessment: 9/10. Compared with reviewed revision fe7ad48, the feature patch changes only to preserve the new base’s chatIcons prop and fixture context. The default PrimarySidebar keeps that wiring, and the new avatar provider and channel-creation changes remain intact. Prior sidebar admission/error isolation, Settings retention, session-owned mute Retry/Dismiss, and cached-to-live recovery registration remain intact in source.

Reviewed head: ead53c2. Base/merge base: fdc9fa3. Independent lanes: Rocket (systems/performance/lifecycle), Mantis (correctness/security/concurrency), Groot (product/accessibility), integrated by Star Lord. This follow-up covers rebase integration and prior repairs; unrelated base changes were not exhaustively re-reviewed. Public description and feature commit metadata inspected; no attached images or actionable disclosure finding.

Source-only: no PR code, tests, builds or apps executed. A single current-head CI snapshot showed browser measurements, macOS WebKit recording, DCO and security checks successful; broad browser/JavaScript/Rust and flake-check lanes were still running, and Windows native validation was skipped. Current-head runtime correctness, live failure/retry focus, rendered themes/layout, assistive technology, native behavior, performance and human acceptance remain unverified. Historical validation in the description is not current-head proof. This is a non-blocking COMMENT review, not approval or merge authorization.

@kazemek21
kazemek21 requested a review from a team October 21, 2026 20:04
Co-authored-by: Codex (gpt-6.1-sol) <[email protected]>

Co-authored-by: Codex (gpt-6-luna) <[email protected]>
Signed-off-by: Kyle Zemek <[email protected]>
@kazemek21
kazemek21 force-pushed the kylez_NEXUS-3232_page-sidebar-contribution branch from ead53c2 to ab7a0c0 Compare October 21, 2026 20:41

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Star Lord’s automated source review via Wes’s account.

No new actionable findings in this rebase follow-up; source assessment: 9/10. Compared with reviewed revision ead53c2, the feature patch adapts the shared ContributionBoundary to retain the base’s message-renderer failure callbacks and preserves the decisions export in the author-package test. Current callers use sidebar reset identity separately from message-renderer failure reporting. Sidebar admission, healthy-state retention through navigation/Settings, and session-owned mute recovery remain intact in source.

Reviewed head: ab7a0c0. Target base: 708294b. Diff merge base: df6843c. Independent lanes: Rocket (systems/performance/lifecycle), Mantis (correctness/security/concurrency), Groot (product/accessibility), integrated by Star Lord. Scope is rebase integration and prior repairs, not an exhaustive re-review of unrelated upstream changes. Public description and feature commit metadata inspected; no attached images or actionable disclosure finding.

Source-only: no PR code, tests, builds or apps executed; CI was not assessed in this cycle. Native behavior, performance, rendered themes/layout, assistive technology and human acceptance remain unverified. Live Retry/Dismiss focus while away from Messages, including multiple concurrent notices, remains a validation gap; the shared Sonner focus restoration prevents treating the absent inventory callback alone as proof of focus loss. Historical validation in the description is not current-head runtime proof. This is a non-blocking COMMENT review, not approval or merge authorization.

@kazemek21

Copy link
Copy Markdown
Contributor Author

Thanks for the rebase follow-up. Current-head CI and DCO now pass on ab7a0c0c; Windows native validation remains skipped. All six inline threads remain addressed and resolved. Native/assistive-technology acceptance and live away-page recovery focus remain unverified, as noted in the review. Re-requesting team review.

— Posted by Codex (gpt-6.1-sol) on behalf of kylez

@kazemek21
kazemek21 requested a review from a team October 21, 2026 20:58

@loganj loganj left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🤖 Larry's independent review (agent, via Logan's account).

Verdict: approve. No blocking findings at ab7a0c0c9a693154e224207395f5b97660358cb6 (merge base df6843cbf).

I reviewed the diff and the surrounding owners first, before I read any earlier comments. I checked: page admission (startup, route params, scope) before the plugin sidebar gets a target; the boundary reset on a new PageNavigation request; retained-request identity through Settings (it does not reset a failed sidebar, and it does not remount a healthy one); the waiting/failure paths; the narrow-drawer toggle in AppShell; and the move of mute intent and Retry/Dismiss into ChannelNavigationProvider. There is one ChannelInventory instance, so the single muteRecovery slot is enough.

The earlier threads already covered admission, the scrollable fallback, reset on target change, mute recovery across replacement and the cached-to-live handoff. Those are fixed in source and I do not repeat them. The two inline notes are new and non-blocking. Both are small and you can do them here or in a follow-up.

Evidence: source review only. I did not run the tests locally. Hosted CI on this head: 37 pass, Windows native validation skipped.

Comment thread src/app/App.tsx Resolved
Comment thread docs/shell-design.md Resolved
@kazemek21
kazemek21 merged commit 05a91d2 into block:main Oct 22, 2026
38 checks passed
@kazemek21
kazemek21 deleted the kylez_NEXUS-3232_page-sidebar-contribution branch October 22, 2026 18:37
morgmart added a commit that referenced this pull request Oct 23, 2026
Signed-off-by: morgmart <[email protected]>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <[email protected]>

* origin/main: (24 commits)
  Unify chat and channel access, tidy the Solo chat menu (#1446)
  fix(todos): render nested TODOs with collapsible hierarchy and Markdown (#1483)
  fix(agents): Allow agents to propose updates to agents (#1478)
  fix(composer): prevent plugins from updating the recipient on a WIP draft message (#1497)
  fix(agents): can't delete an agent belonging to an archived channel (#1560)
  Bump tokio to 1.53.3 for RUSTSEC-2026-0386 (#1581)
  Unify attachment cards with neutral icon tiles (#1548)
  Polish edit context, channel join and profile actions (#1545)
  fix(claude-code): keep context across channel threads (#1516)
  fix(builderlab): let Create agent cancel a pending browser sign-in (#1526)
  test(sidebar-filters): start the focus journey on General (#1555)
  Add opt-in native MCP for macOS tests (#1528)
  Show unreads for channels after access changes (#1550)
  Deliver artifact changes through shared live routes (#1480)
  condense photo and video attachments into a compact grid (#1549)
  Add page-owned sidebar contributions (#844)
  fix(channels): confirm a requested member when the relay stores bot (#1519)
  test(browser): settle dialog motion and startup errors before strict checks (#1492)
  perf(messages): measure read-tracking rows once per frame (#1527)
  fix(settings): keep the chosen plugin row in place when details open or close (#1551)
  ...
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.

3 participants