Skip to content

fix(web): use shared settings scope for archived threads - #247

Merged
lastobelus merged 8 commits into
lastcode/mainfrom
lastcode/remove-superseded-archive-filtering
Sep 21, 2026
Merged

lastobelus merged 8 commits into
lastcode/mainfrom
lastcode/remove-superseded-archive-filtering

Conversation

@lastobelus

@lastobelus lastobelus commented Sep 21, 2026 •

Copy link
Copy Markdown
Owner

LastCode’s custom Archive picker from #31 and #45 overrides the shared Settings controls supplied by upstream #10639. Restore the shared project/environment breadcrumb, parent Settings search handling, logical grouping, and Archive filtering. Upstream #7282 is closed as superseded; the discussion decision records the preference.

Remove the custom ProjectScopeBreadcrumb, archiveProjectFiltering model, useArchivedProjectModel, route-local validator, and obsolete tests. Preserve connected-environment queries and full-environment archive snapshots for LastCode’s deletion ownership checks. Shared scope readiness retains Archive’s startup loading state; a single thread index avoids scanning the archive once per project. The upstream replacement is present in the current base; this is a surgical cleanup, not a historical revert or compatibility layer.

Production code: 337 lines removed, 138 added (199 net removed). Including replacement regression coverage: 649 removed, 811 added (162 net added).

Validation: Quick CI passed for 09e89ea against cffb29a; 57 focused Archive/scope/navigation tests and web typecheck passed after the review fixes, including direct project-link discovery and live confirmation of missing scopes, archive reads through the Settings route guard before configs arrive, disconnected-scope notices and reconnection, duplicate workspace registrations under project/checkout scope, and cross-environment project ID isolation. The earlier base-refresh run passed 48 focused tests. Earlier focused coverage also passed for shared Settings search, grouping, archive snapshots, deletion safeguards, and the server catalog retaining archived-only projects. Targeted lint/formatting passed, with existing lint warnings outside changed code.

Browser QA passed in the built-in Browser panel with isolated fixtures: select project, return to All projects, group two repository checkouts, select an archived-only project, select an environment, and retain unavailable selections without widening scope. Before/after screenshots are attached on GitHub. Loading/disconnected states and cross-environment grouping have automated coverage; two live environments were not exercised. Web and the desktop web renderer are affected; no mobile/provider/wire-contract behavior changes.

Merge, installation, restart, and deployment are not authorized by this PR request.

Implemented by GPT-6 in the Codex harness.

Restore upstream Settings project and environment controls in Archive and
remove the superseded custom breadcrumb, model, route validation and tests.
Keep connected-environment queries and complete archive deletion ownership
inputs. Cover shared navigation, scoped results and archived-only projects.

Carry-Group: upstream-bugfixes
Carry-Upstream: pingdotgg#10639 merge e22040d
Carry-Supersedes: #31
Carry-Supersedes: #45
Carry-Observation: Upstream shared Settings scope replaces the closed archive filtering proposal; offline-query and deletion safety remain.
Carry-Evidence: pingdotgg#6780 (comment)
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 21, 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-09-21T17:03:52.789529Z 09e89ea 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: a1ae3b1c84

ℹ️ 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/SettingsPanels.tsx Outdated
Comment thread apps/web/src/components/settings/SettingsPanels.tsx Outdated
@lastobelus

Copy link
Copy Markdown
Owner Author

Before/after Archive screenshots using the same isolated fixtures.

Before: custom Archive picker.

Before: custom Archive picker

After: shared Settings project and environment controls.

after

Keep Archive loading until shared settings scope discovery is ready. Index archived threads by environment and project once before rendering groups. Cover discovery completion and identical project IDs across environments.

Carry-Group: upstream-bugfixes

Carry-Observation: Preserve archive readiness and linear grouping while adopting shared Settings scope.
@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: d010367c5a

ℹ️ 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/SettingsPanels.tsx Outdated
Use connected environments in the selected scope for archive reads independently of config-dependent settings write targets. Cover pending config reads and retained disconnected-environment filtering.

Carry-Group: upstream-bugfixes

Carry-Observation: Archive reads require a connection but not a hydrated settings config.
@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: 98e3b05fc0

ℹ️ 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/SettingsPanels.tsx
Keep config-dependent settings writes gated while allowing Archive reads on a connected scoped environment. Exercise Archive tests through the route boundary and retain reconnect coverage for disconnected Archive and config-pending settings.

Carry-Group: upstream-bugfixes

Carry-Observation: Shared Settings route gating must distinguish Archive reads from config-dependent settings writes.
@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: 6e80f3e567

ℹ️ 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/SettingsPanels.tsx
Show a connection notice when no environment in the selected scope can be queried. Cover all, project and checkout scopes and recovery after reconnecting.

Carry-Group: upstream-bugfixes

Carry-Observation: A disconnected archive scope is unavailable rather than known empty.
@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: bfa4fc16bd

ℹ️ 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/SettingsScopeContext.tsx
Use existing shell bootstrap readiness for project-scoped Settings and let Archive show loading before its route declares a saved scope unavailable. Cover both resolved and missing projects after startup. Avoid requiring disconnected environments to become live.

Carry-Group: upstream-bugfixes

Carry-Observation: Saved archive project scopes need initial shell discovery before unavailable notices.
@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: cf71e87600

ℹ️ 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/SettingsScopeContext.tsx Outdated
Require live project snapshots before rejecting an unresolved saved project or checkout. Show an explicit offline/sync notice when resolution cannot finish, while leaving resolved scopes usable. Cover cached snapshots, disconnected and disabled environments, and resolved scopes.

Carry-Group: upstream-bugfixes

Carry-Observation: Cached snapshots cannot prove a saved archive project is absent.
@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: 8973edfbdf

ℹ️ 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/SettingsPanels.tsx
Match archive projects against the shared physical workspace keys selected by Settings instead of only deduplicated representative IDs. Exercise real grouping and scope resolution for project and checkout selection, including normalized paths and environment isolation.

Carry-Group: upstream-bugfixes

Carry-Observation: Duplicate project registrations can retain archived threads after shared grouping chooses a newer representative.
@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Can't wait for the next one!

Reviewed commit: 09e89eaf94

ℹ️ 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 merged commit 7db8869 into lastcode/main Sep 21, 2026
10 checks passed
@lastobelus
lastobelus deleted the lastcode/remove-superseded-archive-filtering branch September 21, 2026 17:09
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