Skip to content

fix(extension): discover projects beyond the recent list - #4488

Merged
ScriptedAlchemy merged 5 commits into
fix/sdk-delivered-stream-cursorsfrom
fix/extension-project-discovery
Oct 25, 2026
Merged

ScriptedAlchemy merged 5 commits into
fix/sdk-delivered-stream-cursorsfrom
fix/extension-project-discovery

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

Stack order (merge first → last): #4473 → #4478 → #4521 → #4526 → #4515 → #4510 → #4516 → #4524 → #4489 → #4488 → #4485

This PR is layer 10/11, based on #4489. Next: #4485.

Merge bottom to top using merge commits. After each parent merges, retarget its child to master before merging the child; this preserves the ancestry already integrated and avoids reintroducing conflicts.

Problem

The ChatGPT extension used ten recent registered projects as its entire interactive picker. It discarded the registry's completeness metadata and exposed no route to find older projects. Pending app requests also had no cancellation or stale-response ownership.

Changes

  • Preserve canonical listing limit, truncation, and page-summary metadata through the bridge and view.
  • Add app-only project discovery through the existing generated project_search descriptor and profile-scoped, projectless registry session.
  • Add a searchable picker for project paths, aliases, IDs, and default branches. Clearing the query restores recent projects.
  • Distinguish recent partial lists, complete/truncated matches, empty registry, no matches, and registry failures.
  • Cancel replaced searches and navigation through the actual MCP request signal. Guard both late successes and failures so they cannot replace newer results or the selected project.
  • Keep search controls, keyboard focus, and the draft usable during pending queries; cancel on host teardown and page hiding.
  • Preserve direct project-ID reads, profile authorization, and mention budgets (four recent projects, eight items per project).
  • Regenerate both embedded artifacts and include discovery/DOM regressions in the existing Bazel adapter test target.

Both recent and search requests retain the existing ten-project page bound. Summary counts describe the returned page; no pagination cursor or artifact-size ceiling was introduced.

Verification

  • 68/68 focused extension tests passed: adapter, project-discovery, project-picker DOM, serve-session, and bridge-lifecycle suites.
  • The DOM suite imports the real app and controls only its host boundary. It verifies exact-ID selection, supersession, typing/focus, stale success/failure, deep links, external host results, and teardown.
  • A real MCP client/extension server test verifies cancellation propagation to the registry-call boundary.
  • Server and app TypeScript checks passed; all changed test files, including live fixtures and browser harness, passed a strict TypeScript check.
  • SDK build, extension build, byte-for-byte check:embedded, commit lint, and git diff --check passed.
  • Extended the existing 26-project daemon fixture and added an eleven-project browser journey for discovery beyond recent projects.

Verification limits: the live production-daemon suites were not run because this environment has no built TraceDecay CLI. The connected Browser extension was unavailable, and the cloud browser's URL policy blocked the temporary preview. No browser visual pass or live-daemon conformance pass is claimed.

Fixes #4414.

@changeset-bot

changeset-bot Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: d449437

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@ScriptedAlchemy
ScriptedAlchemy enabled auto-merge (squash) October 24, 2026 04:23
@ScriptedAlchemy
ScriptedAlchemy force-pushed the fix/extension-project-discovery branch 2 times, most recently from 93523f3 to e78b67c Compare October 24, 2026 15:08
@ScriptedAlchemy
ScriptedAlchemy enabled auto-merge (squash) October 24, 2026 18:04
@ScriptedAlchemy
ScriptedAlchemy force-pushed the fix/extension-project-discovery branch from 4a3e2fc to 8a60e8a Compare October 24, 2026 19:18
@ScriptedAlchemy
ScriptedAlchemy force-pushed the fix/extension-project-discovery branch from 8a60e8a to 005f01e Compare October 24, 2026 23:30
@ScriptedAlchemy
ScriptedAlchemy changed the base branch from master to fix/sdk-delivered-stream-cursors October 25, 2026 01:30
@ScriptedAlchemy
ScriptedAlchemy merged commit 5768285 into fix/sdk-delivered-stream-cursors Oct 25, 2026
12 of 15 checks passed
ScriptedAlchemy added a commit that referenced this pull request Oct 26, 2026
* fix(extension): discover projects beyond the recent list

* fix(extension): preserve project picker button focus

* fix(extension): preserve runfile paths in DOM tests

* build(plugin): regenerate chatgpt embed from built TypeScript SDK
ScriptedAlchemy added a commit that referenced this pull request Oct 26, 2026
* fix(extension): discover projects beyond the recent list

* fix(extension): preserve project picker button focus

* fix(extension): preserve runfile paths in DOM tests

* build(plugin): regenerate chatgpt embed from built TypeScript SDK
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.

fix(extension): expose bounded project discovery beyond the ten recent entries

1 participant