Repository navigation
feat(web): simplify the window project chooser - #1669
Conversation
c61e385 to
0298eea
Compare
🩺 Aftercare:
|
| Head | Result | Time | Check |
|---|---|---|---|
6b3d782 |
252 min | run | |
c6a7e81 |
4 min | run |
0298eea to
c6a7e81
Compare
c6a7e81 to
6b3d782
Compare
7e34e71 to
6b5a767
Compare
Fork-Domain: workspaces Fork-Tier: qol
6b5a767 to
69eb05f
Compare
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - c45493a feat(web): simplify the window project chooser (#1669) (#1669) - 3064756 fixup! feat(web): simplify the window project chooser (#1669) (#1669) - c181411 feat(web): simplify the window project chooser (#1669) (#1669) - 5eb51ff fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - c45493a feat(web): simplify the window project chooser (#1669) (#1669) - 3064756 fixup! feat(web): simplify the window project chooser (#1669) (#1669) - c181411 feat(web): simplify the window project chooser (#1669) (#1669) - 5eb51ff fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - c45493a feat(web): simplify the window project chooser (#1669) (#1669) - 3064756 fixup! feat(web): simplify the window project chooser (#1669) (#1669) - c181411 feat(web): simplify the window project chooser (#1669) (#1669) - 5eb51ff fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - c45493a feat(web): simplify the window project chooser (#1669) (#1669) - 3064756 fixup! feat(web): simplify the window project chooser (#1669) (#1669) - c181411 feat(web): simplify the window project chooser (#1669) (#1669) - 5eb51ff fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces <!-- Keep the fork trailer block contiguous. --> Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - eb8e361 feat(web): simplify the window project chooser (#1669) (#1669) - 70f48e8 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - eb8e361 feat(web): simplify the window project chooser (#1669) (#1669) - 70f48e8 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - eb8e361 feat(web): simplify the window project chooser (#1669) (#1669) - 70f48e8 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol
Reshape CommandPalette as marked insertions without replacing upstream calls; keep project identity on derived thread actions. Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
Reshape CommandPalette as marked insertions without replacing upstream calls; keep project identity on derived thread actions. Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
Reshape CommandPalette as marked insertions without replacing upstream calls; keep project identity on derived thread actions. Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - e2e24ff feat(web): simplify the window project chooser (#1669) (#1669) - 96f2eb5 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - e2e24ff feat(web): simplify the window project chooser (#1669) (#1669) - 96f2eb5 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - e2e24ff feat(web): simplify the window project chooser (#1669) (#1669) - 96f2eb5 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - e2e24ff feat(web): simplify the window project chooser (#1669) (#1669) - 96f2eb5 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - e2e24ff feat(web): simplify the window project chooser (#1669) (#1669) - 96f2eb5 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - e2e24ff feat(web): simplify the window project chooser (#1669) (#1669) - 96f2eb5 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - e16eaa2 feat(web): simplify the window project chooser (#1669) (#1669) - 3af673d fixup! feat(web): simplify the window project chooser (#1669) (#1669) - e2e24ff feat(web): simplify the window project chooser (#1669) (#1669) - 96f2eb5 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - e16eaa2 feat(web): simplify the window project chooser (#1669) (#1669) - 3af673d fixup! feat(web): simplify the window project chooser (#1669) (#1669) - e2e24ff feat(web): simplify the window project chooser (#1669) (#1669) - 96f2eb5 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
pick 85cd0f8 fix(upstream-fixes): mobile checkout moves keep upstream's task-permission gate pick 4f18a87 fix(ci): provision browser and fold replay prerequisites (#1666) pick adf496d fix(server): conversation forks keep their title, links, and children isolated (#1667) pick aa22745 fix(server): settle checkout-owned zmux sessions (#1665) pick 5d52d3b feat(web): add all-except project filtering (#1663) fixup 292c7e6 fixup! feat(web): add all-except project filtering (#1663) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/5d52d3b37617cacd6abe68efef3b114b308cc0ce.msg)" pick 35d7d7e feat(web): simplify the window project chooser (#1669) pick 49cad64 fix(server): deliver terminal exits to the owning viewer (#1676) pick 7c996b4 feat(terminal): open a plain shell alongside managed zmux (#1677) pick e6eb930 fix(web): preserve terminal selection across output updates (#1679) pick 92d6058 feat(server): scaffold external voice dictation (#1672) pick 24529cb feat(server): transcribe recordings with Meta Muse (#1673) pick 6257c11 feat(desktop): record dictation into editable chat drafts (#1675) fixup 89bc6e7 fixup! feat(desktop): record dictation into editable chat drafts (#1675) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/6257c1192810ad42c6e149f9cbd9a20ef60b7206.msg)" pick 7c8db8b docs(agents): tighten fork development priorities (#1683) pick 6caa4d8 fix(desktop): keep dictation transcribing across thread switches (#1684) fixup ead68e7 fixup! fix(desktop): keep dictation transcribing across thread switches (#1684) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/6caa4d8811115e55390a8c336bcc76234e9faa23.msg)" pick 800ed30 feat(desktop): stream live Meta dictation into the composer (#1686) fixup 740bd49 fixup! feat(desktop): stream live Meta dictation into the composer (#1686) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/800ed307c0d26f464320892b0941babe07baf08b.msg)" pick 3983853 docs(fork-meta): allow isolated browser verification (#1689) pick a47c10c docs(fork): showcase recent features with existing PR media (#1691) pick 67e6894 feat(desktop): duck selected speakers during dictation (#1687) fixup 36850d5 fixup! feat(desktop): duck selected speakers during dictation (#1687) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/67e689405e382b3c59fa1b52f98e237df38ed698.msg)" pick c40227a fix(fork-meta): inherit assigned Hypr workspace in desktop runner (#1690) pick b4451af fix(server): tear down zmux sessions on thread settle and delete (#1688) fixup 2af598f fixup! fix(server): tear down zmux sessions on thread settle and delete (#1688) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/b4451afea83a8018f4914e64e0a7a9c44b6203af.msg)" pick 1e056b4 feat(dictation): add configurable cleanup and formatting (#1685) fixup 06f209e fixup! feat(dictation): add configurable cleanup and formatting (#1685) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/1e056b479845c3e771897d9d340a94e5697aeda6.msg)" pick fb52655 fix(upstream-fixes): use extracted provider and replay services pick 80c87b6 fix(upstream-fixes): adapt fork services to extracted source-control and host process APIs pick 287c2d7 fix(upstream-fixes): align fork focus rings with inset indicators pick de9176b fix(fork-sync): the trunk moves only to a sha hyprws CI passed on sync/candidate (#1701) pick 2f74ffb feat(terminal): choose zmux or plain per terminal and restore sessions on unsettle (#1699) pick f43fd48 fix(upstream-fixes): provide fork Git workflow services in managed folder tests pick e6ad2ff fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) pick 08a2f80 fix(ci): run hyprws CI on stacked pull requests (#1715) pick a1cfdb3 fix(server): skip the update backup when no migrations are pending (#1711) pick ac34343 fix(fork): keep the client usable while the attached server restarts (#1712) pick 8df49c9 fix(web): show server update progress through reconnect (#1713) fixup 1c56ae7 fixup! fix(web): show server update progress through reconnect (#1713) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/8df49c97f6925ae381ffb7ecd53d3e457e28cc24.msg)" pick afe2734 fix(server): log memory high-water marks and snapshot the heap at 4 GiB (#1718) pick e905bde fix(server): record main-thread stacks when memory bursts past 4 GiB (#1719) pick ba8335a fix(desktop): keep the attached server through a stall (#1721) pick cb27f62 fix(server): stop syncing the SQLite WAL on every commit (#1722) pick 3ee6cba fix(server): purge imported v1 rows the v2 runtime never reads (#1723) pick 021b837 fix(ci): force upstream tag fetches so a moved tag cannot block releases (#1724) pick a473b09 fix(server): return thread waits when input is needed (#1736) fixup 7f92cc8 fixup! fix(server): return thread waits when input is needed (#1736) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/a473b09e495cad1421bb0e4cb2a9049f2c24889a.msg)" pick a958a4e fix(checkout): preserve turns and shared sources during moves (#1733) pick 7ef7b86 fix(server): retire live work when provider sessions detach (#1734) pick 0313964 fix(terminal): keep terminals through checkout moves (#1738) fixup 7b70026 fixup! fix(terminal): keep terminals through checkout moves (#1738) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/0313964c3c2d131d675637a9da738891d0eb0b32.msg)" pick f622f4a fix(web): pair on same-tab token hash navigation (#1740) pick 33743d6 fix(zmux): handle workspace basename collisions (#1741) pick 44b7dbc fix(mcp): hide tools refused by read-only grants (#1742) fixup 2585ace fixup! fix(mcp): hide tools refused by read-only grants (#1742) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/44b7dbc751a12a7b9fbf585ca10e6daffcf233c1.msg)" pick cdd21bc fix(web): preserve formatter-clean rich Markdown markers (#1743) pick 7c7faf7 fix(issues): persist controls, show parents, and search all issues (#1744) pick 8cd1cd8 fix(upstream-fixes): fork code calls the Effect 4.0.4 randomUUIDv4 function pick 49e5314 refactor(upstream-fixes): sampled planner statistics defer to upstream ; empty pick 5b8b460 fix(fork): hook guard matches replayed lines across re-indentation pick 7d1a2aa fix(web): update everything updates the attached service in client-only mode (#1751) pick f053d33 refactor(upstream-fixes): fork GitHub issue and attachment paths use upstream's request policy after `pingdotgg#19224` pick 40e475e refactor(upstream-fixes): fork WS RPCs get their own handler layer under TypeScript's instantiation limit pick bb196b3 test(upstream-fixes): fork ingestor tests provide upstream's GitVcsDriver (`pingdotgg#20079`) and CommandOutputHub (`pingdotgg#15094`) pick 953db7a fix(git): name the thread in checkout move refusals (#1762) pick 284943c fix(web): retarget hidden terminal splits when shown (#1763) pick 20b4aa4 fix(voice): show redacted provider detail when cleanup fails (#1765) pick 22e1a1e fix(release): build only AppImages for fork Linux releases (#1768) pick 6421c4d fix(web): align group title generation budgets (#1769) pick 4b03981 fix(web): autosave rich Markdown and save files with Ctrl+S (#1770) fixup c6f0754 fixup! fix(web): autosave rich Markdown and save files with Ctrl+S (#1770) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/4b03981264d1eb75c70dc2f8d0eec2abd9ba58cc.msg)" pick 545c871 fix(pr): stop turn refreshes from rereading review activity (#1771) pick 3bb83d3 fix(server): strip desktop launcher environment before providers start (#1766) pick 10ce76a fix(desktop): ignore installed dependencies in pack watchers (#1767) pick 7bec9b3 feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) fixup 59d45ec fixup! feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/7bec9b3103dee6f3e8b96cc3d6db7ad4fd7c6897.msg)" pick 10f7a3d fix(upstream-fixes): fork scripts drop section dividers upstream's no-low-value-comments lint refuses pick eb97ac5 refactor(upstream-fixes): retire the fork's activities purge now upstream drops the table pick eeef974 fix(ci): install Chromium for release web browser tests (#1778) pick 74f1379 fix(fork-sync): a file's second hooked commit re-applies; hooks must stay pure insertions (#1780) pick 179b030 refactor(desktop): retire the fork second-instance buffer for upstream's pick 53c1d1a fix(fork-sync): hook guard, hook re-apply, and fold check each drop a manual repair (#1782) pick 260d02a chore(fork-meta): run Macroscope check-run agents as rsi-pr-agent workflows (#1786) pick 850335e chore(fork-meta): run rsi-pr-agent workflows on the merged pr-change trigger (#1788) pick 02b0311 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) pick 448da8c fix(web): use shared custom agent menu heading (#1796) pick 012cb09 fix(web): compose thread group section headers (#1797) pick 5238881 fix(web): compose bookmark rows from shared primitives (#1798) pick 874ffea fix(web): use shared primitives for GitHub issue controls (#1799) pick 7f24727 fix(voice-input): use InlineButton for processing error dismissal (#1800) pick b7af052 fix(ci): release web tests pin the upstream release repository (#1802) pick e1fad55 fix(web): dictation fills AskUserQuestion custom answers (#1803) pick f27d098 fix(fork-sync): an exact upstream backport may drop its PR link (#1805) pick fe75d4c fix(fork-meta): browser test siblings keep the .browser infix (#1806) pick 323a48d test(upstream-fixes): retire fork resume-routing tests superseded by upstream `pingdotgg#21615` pick ee8c9fe refactor(multi-window): route-navigation seams become marked insertions pick d2003ea refactor(multi-window): createWindow seams become marked insertions (#1811) pick 6f5494e fix(fork-meta): fork-fold folds a sync's trailerless fixup into its owner (#1814) pick 9a87a2c perf(fork-meta): fork scan reads blobs through one git cat-file, not one git show per path (#1815) pick bcc5966 refactor(server): retire duplicate fork SQLite WAL sync policy (#1823) pick a3d23d5 refactor(upstream-fixes): retire legacy V1 event purge (#1824) pick 9b254b3 refactor(desktop): extract remaining window helper seams (#1820) pick bd63a47 refactor(fork): share one sync attention issue (#1822) pick a9230b5 refactor(fork-meta): isolate scan git reading (#1819) pick 5d5f3eb refactor(fork-meta): fork scan refuses every finding; the replay baseline is gone (#1826) pick 96ccee7 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) pick de66979 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) pick ffe001b feat(web): thread groups span projects and can mark a parent thread (#1829) fixup 0a387aa fixup! feat(web): thread groups span projects and can mark a parent thread (#1829) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/ffe001b8efcae27f417731f0eb795bc49ab8f665.msg)" pick b7b6592 fix(server): in-thread MCP thread reads show background work (#1831) fixup 35433a7 fixup! fix(server): in-thread MCP thread reads show background work (#1831) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/b7b6592383dc1952310f272f62c42df013b23313.msg)" pick 80b6e0f refactor(upstream-fixes): retire the fork's separate WS handler layer for upstream's split table pick 2cb66a3 fix(fork-sync): reruns continue the rebase, fork:ci gates the candidate, tip commits survive a recreate (#1833) pick 3f3567c fix(ci): release CLI executable builds on the engines.node pin (#1834) pick 978268a fix(fork-sync): wait for setup, follow the trunk, root at the main checkout (#1835) pick 1498f21 fix(desktop): wait for the service update handoff before startup discovery (#1838) pick 94bb436 fix(server): t3 update waits for a pending remote update (#1837) pick 41187c6 chore(fork-meta): teach rsi-pr-agent workflows the fork hook seam (#1839) pick 01547bb feat(server): thread groups live on the server with agent tools (#1840) fixup a4b48f8 fixup! feat(server): thread groups live on the server with agent tools (#1840) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/01547bbc3c864174352e9cb4d32ec0fa8d6ce372.msg)" pick 6f33ca0 feat(fork-sync): resolutions persist as git data between runs (#1849) pick ec5756e feat(fork-sync): a pushed resolution reruns the sync from the trunk (#1850) pick 21a1043 feat(fork-sync): run the fork-sync skill through rsi-pr-agent (#1848) pick 434880c feat(fork-sync): a blocked sync labels its attention issue rsi:fork-sync (#1847) pick 8eadb9c fix(fork-sync): job mode adds the upstream remote before the dry run (#1852) pick 7c7dc13 fix(fork-meta): give the fork-sync job 45 minutes (#1853) pick dd1b537 fix(fork-sync): the job always decides and runs from an rsi-pr-agent checkout (#1854) pick 4c97819 fix(fork-sync): a red candidate starts the fork-sync job (#1855) pick ecc87d3 fix(fork-sync): carry a retired delete/modify through sync/resolution (#1856) pick dbbd60d docs(backend-attach): describe the attached primary and its seams (#1861) pick b069e64 fix(fork-meta): install pins gh's default repository to the fork (#1862) pick cdd794e test(desktop): the cross-arch probe test ignores a host ELECTRON_RUN_AS_NODE (#1859) pick fb406ff fix(github-issues): a V2 unlink of a V1 issue link survives compaction (#1858) pick 7cd6ea1 fix(fork-meta): fold apply keeps cancelling folds and never consults rerere (#1863) pick 9585bef fix(fork): refresh legacy setup scripts in project settings overrides (#1866) pick c20d6ef fix(web): client-only Connections hides managed-server controls (#1867) pick 49b3642 fix(server): fork notice follows a first /compact and native replacement (#1864) fixup 59a7b46 fixup! fix(server): fork notice follows a first /compact and native replacement (#1864) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/49b3642171ae7e7e1418d76a98b1d60e89fece08.msg)" pick d4cc6a0 fix(web): group titles name the shared subject, anchored on the parent (#1868) pick 19b9067 fix(fork-sync): export partial progress before the job limit (#1872) pick 013ccfc test(server): pin core.excludesFile in the GitManager fixture (#1874) pick 8bd2820 fix(server): issue MCP tools target a thread like the pull request tools (#1860) pick cf2e183 fix(server): a stop during the migration backup no longer kills the update (#1873) pick 7f4c625 fix(terminal): close T3 viewers of a settled lane's removed zmux session (#1876) pick 6a2844f fix(fork-sync): time the partial export by the job's clock (#1879) pick e012572 feat(web): group title becomes a tab on its parent thread (#1878) pick e6cfd23 fix(fork-sync): keep a job to one checkout, no proof clones (#1880) pick 1231787 fix(web): file saves no longer overwrite newer disk changes (#1869) pick b6dd169 fix(voice-input): one base URL derives dictation upload and live paths (#1881) pick f1e284e feat(voice-input): send per-project speech terms to the dictation service (#1882) pick a8a3005 fix(fork-sync): a job pushes its rebased tip and the driver lands it without replay (#1887) pick 6424f8a refactor(upstream-fixes): retire the terminal focus-request gate; upstream focusTerminal owns focus fixup 205c723 fixup! refactor(upstream-fixes): retire the terminal focus-request gate; upstream focusTerminal owns focus pick d48be70 fix(fork-hooks): the marker scanner skips regex literals (#1888) pick c7d647c fix(fork-sync): a no-tag rerun keeps the kept worktree's tag (#1889) pick 998088f fix(fork-sync): a session runs fork:ci on its tip before the hand-off (#1890) pick 7f8dad0 fix(fork-sync): a sync refuses a tip that lost fork hook lines (#1891) pick a1c4ebc fix(fork-sync): a landed hook retirement exempts no later sync (#1892) pick 5498116 fix(fork-ci): fork:ci runs the merge-tree gate, so a session hands off no tip CI refuses (#1893) pick d30a4fb fix(fork-ci): fork:ci runs knip and typecheck, so a session hands off no tip the Check job refuses (#1894) pick 664abd2 refactor(upstream-fixes): retire the conversation-fork title guard; upstream titles forks from inherited history pick e3e4a4e fix(fork-sync): the land run waits out candidate CI, so the report names every red job (#1895) pick 9701f0c fix(upstream-fixes): storage cleanup treats a broken gitfile as gone on newer git pick 0d463ba fix(fork-sync): the driver adds the upstream remote, and the skill allows its kept worktree (#1897) pick 1a03480 fix(fork-sync): a job session leaves no background process before it replies (#1898) pick a1ea33c refactor(markdown-editing): retire the flush hook supplied by upstream ; empty pick 1320745 chore(fork-meta): account for existing context without changing the upstream budget pick 534ee07 docs(fork-meta): track the resolved sync seams in domain scans pick 66deb1a fix(fork-ci): fork:ci runs every app and package fork test, so a session hands off no tip they fail (#1899) pick 314965b fix(fork-sync): a job out of budget hands off a red finished marker, so its replay survives the pod (#1901) pick d3e402c fix(fork-sync): a sync session folds the stack before its hand-off, so the driver stays the only trunk writer (#1902) pick 8392dad feat(web): every thread group has a parent that carries it to Working (#1904) pick 9c32ad7 fix(fork-ci): the agent context budget compares against the PR base, not upstream main (#1905) Fork-Sync-Tag: v0.1.4-nightly.20261028.3809 Fork-Sync-Lease: 9c32ad7
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - e16eaa2 feat(web): simplify the window project chooser (#1669) (#1669) - 3af673d fixup! feat(web): simplify the window project chooser (#1669) (#1669) - e2e24ff feat(web): simplify the window project chooser (#1669) (#1669) - 96f2eb5 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
pick 7e1fc40 feat(web): sidebar thread groups use the section header idiom fixup 30fc9d6 fixup! feat(web): sidebar thread groups use the section header idiom pick c8ec899 fix(fork-sync): carry the kept sync worktree across reruns pick 0a3bad0 fix: recover threads whose worktree was removed pick 4e476bd fix: threads keep working after their worktree is removed pick 813d3eb fix(web): draw sprite glyphs with Ghostty's own rasterizer pick 98de14d ci(fork): pooled package tests get the same widened per-test budget as web pick 55c1f33 refactor(upstream-fixes): usage keybinding order defers to upstream ; empty pick c8fba62 fix(server): an interrupt failure is recorded before its session stops ; empty pick b5561df feat(desktop): fork AppImages show T3 Code (hyprws) in launchers pick 071594c feat(web): fork a thread from the thread menu (#1330) pick cfa2968 feat(fork): register the multi-window and workspaces fork domains pick f2151b6 fix(desktop): client-only boots drain restore and launch intent pick d3c875f feat(web): scope unsent composer drafts per window pick 958560c feat(desktop): attach one local server as primary in client-only mode fixup 8b447fd fixup! feat(desktop): attach one local server as primary in client-only mode pick dbc4ebd feat(desktop): key desktop windows by an opaque WindowId pick 2e5c1a7 feat(web): each desktop window keeps its own sidebar project scope fixup 355f8d2 fixup! feat(web): each desktop window keeps its own sidebar project scope pick e95355d feat(desktop): window requests target the sender or the most recent window pick 25ca799 feat(desktop): New Window and deep links follow one dispatch table pick 76fc8a6 feat(desktop): update relaunch restores every window from manifest v2 pick 8eefa56 feat(web): each window filters several projects fixup 3f67a71 fixup! feat(web): each window filters several projects pick 8bac3c2 feat(web): the project chooser selects several projects pick 2cd52eb refactor(web): project routes retire behind a link decoder pick c7ded9f feat(web): the window filter scopes lists without hiding running work fixup 661cb87 fixup! feat(web): the window filter scopes lists without hiding running work pick b55929c docs(fork): any window is the T3 instance, filtered per window pick ac05889 fix(desktop): a placed window maps on its workspace before it maximizes pick 687446c chore(fork): retire the legacy project-windows domain pick 3c2bfa3 fix(fork-sync): one standing blocked and failed issue, rewritten per run pick 9cdab26 fix(fork): scan a fixup! landing as the commit it names (#1386) pick 46aa064 docs(fork): README and docs describe multiple windows (#1387) pick fed0ac0 fix(web): narrow issue panels keep the title and number readable pick 7043061 fix(web): an open file re-reads on reopen and window focus pick 8e4e677 fix(web): long context menus fit the window instead of scrolling (#1419) pick 8b12b0a feat(web): github issues surface reuses the pull request primitives (#1420) pick 3b011c0 feat(web): issues page answers the pull request page's keyboard (#1421) fixup b049acb fixup! feat(web): issues page answers the pull request page's keyboard (#1421) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/3b011c08adc7c2a3913477f39e58d93203b3588c.msg)" pick aa584b2 feat(web): issue list narrows in place while GitHub answers (#1422) pick ca5bf0c fix(fork-sync): the check battery runs knip and the desktop build before a trunk push (#1439) pick 45cadb1 feat(web): issue detail gains the pull request panel's actions menu (#1423) pick 8261376 feat(server): threads persist linked GitHub issues (#1440) pick 517317c feat(web): close and reopen an issue from its detail panel (#1424) pick aedf0ca fix(web): issue controls wrap as one group on a narrow pane (#1425) ; empty pick 5706ac9 feat(server): agents link GitHub issues to their thread over MCP (#1441) pick 5b01459 feat(web): link GitHub issues to threads from the issue panel, thread, and palette (#1442) pick eaf2f16 feat(server): read linked issue state on link, panel open, and refresh (#1445) fixup 5216d82 fixup! feat(server): read linked issue state on link, panel open, and refresh (#1445) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/eaf2f161e1d69c35254613999322d5cbf086aeec.msg)" pick a75bcda test(github-issues): prove the upstream app still reads a fork server (#1452) pick a743556 fix(web): issues and links closed as not planned no longer show the merged or completed purple fixup dd6ba81 fixup! fix(web): issues and links closed as not planned no longer show the merged or completed purple pick 08bb859 fix(web): a failed issue list refresh reads as stale and keeps its rows pick 49aa471 fix(web): a failed group title stays on screen with a retry (#1468) pick 0de4eac fix(client-runtime): an attached primary no longer reconnects on every platform poll (#1477) pick eb1bf01 fix(web): batch thread delete no longer asks to delete Scratch folders (#1481) pick 739aad2 feat(server): owner-approved device authorization for native clients (#1483) pick f0edb69 fix(fork-sync): the check battery runs every hyprws CI test job before a trunk push (#1499) pick dc4178b docs(fork-sync): adapt in one Fork-Repair commit at the tip (#1496) pick b452743 docs(fork): document hook marker span; guard names the comment fix (#1497) pick aafd1e1 fix(fork): folds never drop a PR link, and a plan line can attach one (#1498) pick 61f197e fix(fork-sync): a conflict on a generated file reruns its generator (#1500) pick 985a836 fix(fork-sync): a stopped sync workspace builds and its report keeps every stop (#1501) pick 4bcb299 fix(fork): fold and sync rebases run without auto maintenance racing their stops (#1502) pick 9fa7d12 fix(fork-sync): a green dry-run keeps its tip for the real sync to publish (#1503) pick 2299d18 chore(fork): fork tooling sheds its dead flags, outputs, and stale docs (#1504) pick 5f769e3 fix(fork): scan skips restored upstream test openers; folds may split a cited mover (#1506) pick cb6c874 fix(fork-sync): a squash-landed fixup! pull request folds at the next sync (#1509) pick d76c5cc fix(fork-sync): the sync step keeps GH_REPO out of the check battery (#1510) pick ca00d62 fix(fork): forkSupersedes names wrapped and each-table upstream titles (#1532) pick 3831e40 fix(fork): folds list squash-landed fixups as members (#1591) pick 697789a fix(fork): a fold keeps a split piece's repair line when its owner ends in (#N) (#1598) pick d68a7a5 refactor(server): child-work custom-agent seams sit behind fork-owned files pick 180745f fix(server): a server-started turn recovers its removed worktree after the root goes idle (#1601) pick bb85595 fix(fork): folds from a split head cite the old trunk shas (#1600) pick 14b6cd1 fix(web): retire the fork's durable sidebar Done and run age (#1608) pick f722f9e fix(desktop): an explicit basic password store keeps saved environments (#1531) pick 4738679 fix(fork-sync): the license merge keys an unnamed entry on its repositoryUrl (#1616) pick fe0a298 fix(web): the palette's Link GitHub issue item matches its own title (#1617) pick 28b0f7a fix(ci): the sync run summary keeps the log tail under GitHub's limit (#1618) pick ae15e93 fix(fork): a sync fold keeps the squash-landed fixup's PR link (#1620) pick 26889fd feat(fork): refuse a fixup! commit that does not fold into its owner (#1619) pick 90ee696 feat(desktop): publish each window's project scope for external tools (#1621) fixup e63fcb8 fixup! feat(desktop): publish each window's project scope for external tools (#1621) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/90ee696e14eb766451d595d86925fd69756f360c.msg)" pick 1f6543e refactor(upstream-fixes): PR watch single read defers to upstream ; empty pick 4e1f681 fix(server): an ended PR watch cancels its queued wakes (#1628) pick 79c9fbe docs(fork): README showcase clips for each fork domain (#1637) pick d13e32b feat(server): owner-approved external MCP clients over DPoP device grants (#1636) pick 71e0148 fix(server): a client server update repoints the install.sh t3 launcher (#1641) pick 633b107 refactor(fork): sync adaptations land as owner fixups, not Fork-Repair (#1645) pick 43dfaa3 fix(server): external MCP threads inherit the scoped default model and options (#1646) pick 681bf67 fix(server): external MCP reads show background work and native subagent turns (#1648) pick 1a5ce45 fix(mcp): expose reversible external thread settlement (#1649) pick b216a01 feat(server): delegated tasks continue across rounds (#1653) pick 8ddc8a4 fix(mcp): external clients list and answer pending questions (#1654) pick 7ce794d fix(server): resumed native subagents keep recording to their child thread (#1651) pick d7b77d4 fix(upstream-fixes): replayed fork hooks follow upstream renames, moves, and permission splits pick de7bc48 refactor(upstream-fixes): fork modules import Effect 4.0.1's stable paths pick 8641c18 refactor(multi-window): per-window preview runs on upstream's environment-server browser pick 5151ad4 refactor(upstream-fixes): fork GitHub paths use upstream's GitHubApi and RPC middleware pick 1af6333 fix(upstream-fixes): fork controls respect upstream's split session permissions pick c61de5f refactor(upstream-fixes): fork code follows upstream's layer names, Crypto, and module moves fixup db5cb6a fixup! refactor(upstream-fixes): fork code follows upstream's layer names, Crypto, and module moves pick 8db30cb fix(upstream-fixes): fork issue MCP tools declare access through upstream's McpToolAccess pick f7f3b66 fix(upstream-fixes): external MCP registers and declares access through upstream's McpToolAccess fixup 3f74e5b fixup! fix(upstream-fixes): external MCP registers and declares access through upstream's McpToolAccess pick 259246d fix(upstream-fixes): fork tests and setup marker follow upstream's latest web and auth changes pick 85cd0f8 fix(upstream-fixes): mobile checkout moves keep upstream's task-permission gate pick 4f18a87 fix(ci): provision browser and fold replay prerequisites (#1666) pick adf496d fix(server): conversation forks keep their title, links, and children isolated (#1667) pick aa22745 fix(server): settle checkout-owned zmux sessions (#1665) pick 5d52d3b feat(web): add all-except project filtering (#1663) fixup 292c7e6 fixup! feat(web): add all-except project filtering (#1663) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/5d52d3b37617cacd6abe68efef3b114b308cc0ce.msg)" pick 35d7d7e feat(web): simplify the window project chooser (#1669) pick 49cad64 fix(server): deliver terminal exits to the owning viewer (#1676) pick 7c996b4 feat(terminal): open a plain shell alongside managed zmux (#1677) pick e6eb930 fix(web): preserve terminal selection across output updates (#1679) pick 92d6058 feat(server): scaffold external voice dictation (#1672) pick 24529cb feat(server): transcribe recordings with Meta Muse (#1673) pick 6257c11 feat(desktop): record dictation into editable chat drafts (#1675) fixup 89bc6e7 fixup! feat(desktop): record dictation into editable chat drafts (#1675) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/6257c1192810ad42c6e149f9cbd9a20ef60b7206.msg)" pick 7c8db8b docs(agents): tighten fork development priorities (#1683) pick 6caa4d8 fix(desktop): keep dictation transcribing across thread switches (#1684) fixup ead68e7 fixup! fix(desktop): keep dictation transcribing across thread switches (#1684) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/6caa4d8811115e55390a8c336bcc76234e9faa23.msg)" pick 800ed30 feat(desktop): stream live Meta dictation into the composer (#1686) fixup 740bd49 fixup! feat(desktop): stream live Meta dictation into the composer (#1686) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/800ed307c0d26f464320892b0941babe07baf08b.msg)" pick 3983853 docs(fork-meta): allow isolated browser verification (#1689) pick a47c10c docs(fork): showcase recent features with existing PR media (#1691) pick 67e6894 feat(desktop): duck selected speakers during dictation (#1687) fixup 36850d5 fixup! feat(desktop): duck selected speakers during dictation (#1687) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/67e689405e382b3c59fa1b52f98e237df38ed698.msg)" pick c40227a fix(fork-meta): inherit assigned Hypr workspace in desktop runner (#1690) pick b4451af fix(server): tear down zmux sessions on thread settle and delete (#1688) fixup 2af598f fixup! fix(server): tear down zmux sessions on thread settle and delete (#1688) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/b4451afea83a8018f4914e64e0a7a9c44b6203af.msg)" pick 1e056b4 feat(dictation): add configurable cleanup and formatting (#1685) fixup 06f209e fixup! feat(dictation): add configurable cleanup and formatting (#1685) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/1e056b479845c3e771897d9d340a94e5697aeda6.msg)" pick fb52655 fix(upstream-fixes): use extracted provider and replay services pick 80c87b6 fix(upstream-fixes): adapt fork services to extracted source-control and host process APIs pick 287c2d7 fix(upstream-fixes): align fork focus rings with inset indicators pick de9176b fix(fork-sync): the trunk moves only to a sha hyprws CI passed on sync/candidate (#1701) pick 2f74ffb feat(terminal): choose zmux or plain per terminal and restore sessions on unsettle (#1699) pick f43fd48 fix(upstream-fixes): provide fork Git workflow services in managed folder tests pick e6ad2ff fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) pick 08a2f80 fix(ci): run hyprws CI on stacked pull requests (#1715) pick a1cfdb3 fix(server): skip the update backup when no migrations are pending (#1711) pick ac34343 fix(fork): keep the client usable while the attached server restarts (#1712) pick 8df49c9 fix(web): show server update progress through reconnect (#1713) fixup 1c56ae7 fixup! fix(web): show server update progress through reconnect (#1713) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/8df49c97f6925ae381ffb7ecd53d3e457e28cc24.msg)" pick afe2734 fix(server): log memory high-water marks and snapshot the heap at 4 GiB (#1718) pick e905bde fix(server): record main-thread stacks when memory bursts past 4 GiB (#1719) pick ba8335a fix(desktop): keep the attached server through a stall (#1721) pick cb27f62 fix(server): stop syncing the SQLite WAL on every commit (#1722) pick 3ee6cba fix(server): purge imported v1 rows the v2 runtime never reads (#1723) pick 021b837 fix(ci): force upstream tag fetches so a moved tag cannot block releases (#1724) pick a473b09 fix(server): return thread waits when input is needed (#1736) fixup 7f92cc8 fixup! fix(server): return thread waits when input is needed (#1736) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/a473b09e495cad1421bb0e4cb2a9049f2c24889a.msg)" pick a958a4e fix(checkout): preserve turns and shared sources during moves (#1733) pick 7ef7b86 fix(server): retire live work when provider sessions detach (#1734) pick 0313964 fix(terminal): keep terminals through checkout moves (#1738) fixup 7b70026 fixup! fix(terminal): keep terminals through checkout moves (#1738) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/0313964c3c2d131d675637a9da738891d0eb0b32.msg)" pick f622f4a fix(web): pair on same-tab token hash navigation (#1740) pick 33743d6 fix(zmux): handle workspace basename collisions (#1741) pick 44b7dbc fix(mcp): hide tools refused by read-only grants (#1742) fixup 2585ace fixup! fix(mcp): hide tools refused by read-only grants (#1742) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/44b7dbc751a12a7b9fbf585ca10e6daffcf233c1.msg)" pick cdd21bc fix(web): preserve formatter-clean rich Markdown markers (#1743) pick 7c7faf7 fix(issues): persist controls, show parents, and search all issues (#1744) pick 8cd1cd8 fix(upstream-fixes): fork code calls the Effect 4.0.4 randomUUIDv4 function pick 49e5314 refactor(upstream-fixes): sampled planner statistics defer to upstream ; empty pick 5b8b460 fix(fork): hook guard matches replayed lines across re-indentation pick 7d1a2aa fix(web): update everything updates the attached service in client-only mode (#1751) pick f053d33 refactor(upstream-fixes): fork GitHub issue and attachment paths use upstream's request policy after `pingdotgg#19224` pick 40e475e refactor(upstream-fixes): fork WS RPCs get their own handler layer under TypeScript's instantiation limit pick bb196b3 test(upstream-fixes): fork ingestor tests provide upstream's GitVcsDriver (`pingdotgg#20079`) and CommandOutputHub (`pingdotgg#15094`) pick 953db7a fix(git): name the thread in checkout move refusals (#1762) pick 284943c fix(web): retarget hidden terminal splits when shown (#1763) pick 20b4aa4 fix(voice): show redacted provider detail when cleanup fails (#1765) pick 22e1a1e fix(release): build only AppImages for fork Linux releases (#1768) pick 6421c4d fix(web): align group title generation budgets (#1769) pick 4b03981 fix(web): autosave rich Markdown and save files with Ctrl+S (#1770) fixup c6f0754 fixup! fix(web): autosave rich Markdown and save files with Ctrl+S (#1770) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/4b03981264d1eb75c70dc2f8d0eec2abd9ba58cc.msg)" pick 545c871 fix(pr): stop turn refreshes from rereading review activity (#1771) pick 3bb83d3 fix(server): strip desktop launcher environment before providers start (#1766) pick 10ce76a fix(desktop): ignore installed dependencies in pack watchers (#1767) pick 7bec9b3 feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) fixup 59d45ec fixup! feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/7bec9b3103dee6f3e8b96cc3d6db7ad4fd7c6897.msg)" pick 10f7a3d fix(upstream-fixes): fork scripts drop section dividers upstream's no-low-value-comments lint refuses pick eb97ac5 refactor(upstream-fixes): retire the fork's activities purge now upstream drops the table pick eeef974 fix(ci): install Chromium for release web browser tests (#1778) pick 74f1379 fix(fork-sync): a file's second hooked commit re-applies; hooks must stay pure insertions (#1780) pick 179b030 refactor(desktop): retire the fork second-instance buffer for upstream's pick 53c1d1a fix(fork-sync): hook guard, hook re-apply, and fold check each drop a manual repair (#1782) pick 260d02a chore(fork-meta): run Macroscope check-run agents as rsi-pr-agent workflows (#1786) pick 850335e chore(fork-meta): run rsi-pr-agent workflows on the merged pr-change trigger (#1788) pick 02b0311 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) pick 448da8c fix(web): use shared custom agent menu heading (#1796) pick 012cb09 fix(web): compose thread group section headers (#1797) pick 5238881 fix(web): compose bookmark rows from shared primitives (#1798) pick 874ffea fix(web): use shared primitives for GitHub issue controls (#1799) pick 7f24727 fix(voice-input): use InlineButton for processing error dismissal (#1800) pick b7af052 fix(ci): release web tests pin the upstream release repository (#1802) pick e1fad55 fix(web): dictation fills AskUserQuestion custom answers (#1803) pick f27d098 fix(fork-sync): an exact upstream backport may drop its PR link (#1805) pick fe75d4c fix(fork-meta): browser test siblings keep the .browser infix (#1806) pick 323a48d test(upstream-fixes): retire fork resume-routing tests superseded by upstream `pingdotgg#21615` pick ee8c9fe refactor(multi-window): route-navigation seams become marked insertions pick d2003ea refactor(multi-window): createWindow seams become marked insertions (#1811) pick 6f5494e fix(fork-meta): fork-fold folds a sync's trailerless fixup into its owner (#1814) pick 9a87a2c perf(fork-meta): fork scan reads blobs through one git cat-file, not one git show per path (#1815) pick bcc5966 refactor(server): retire duplicate fork SQLite WAL sync policy (#1823) pick a3d23d5 refactor(upstream-fixes): retire legacy V1 event purge (#1824) pick 9b254b3 refactor(desktop): extract remaining window helper seams (#1820) pick bd63a47 refactor(fork): share one sync attention issue (#1822) pick a9230b5 refactor(fork-meta): isolate scan git reading (#1819) pick 5d5f3eb refactor(fork-meta): fork scan refuses every finding; the replay baseline is gone (#1826) pick 96ccee7 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) pick de66979 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) pick ffe001b feat(web): thread groups span projects and can mark a parent thread (#1829) fixup 0a387aa fixup! feat(web): thread groups span projects and can mark a parent thread (#1829) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/ffe001b8efcae27f417731f0eb795bc49ab8f665.msg)" pick b7b6592 fix(server): in-thread MCP thread reads show background work (#1831) fixup 35433a7 fixup! fix(server): in-thread MCP thread reads show background work (#1831) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/b7b6592383dc1952310f272f62c42df013b23313.msg)" pick 80b6e0f refactor(upstream-fixes): retire the fork's separate WS handler layer for upstream's split table pick 2cb66a3 fix(fork-sync): reruns continue the rebase, fork:ci gates the candidate, tip commits survive a recreate (#1833) pick 3f3567c fix(ci): release CLI executable builds on the engines.node pin (#1834) pick 978268a fix(fork-sync): wait for setup, follow the trunk, root at the main checkout (#1835) pick 1498f21 fix(desktop): wait for the service update handoff before startup discovery (#1838) pick 94bb436 fix(server): t3 update waits for a pending remote update (#1837) pick 41187c6 chore(fork-meta): teach rsi-pr-agent workflows the fork hook seam (#1839) pick 01547bb feat(server): thread groups live on the server with agent tools (#1840) fixup a4b48f8 fixup! feat(server): thread groups live on the server with agent tools (#1840) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/01547bbc3c864174352e9cb4d32ec0fa8d6ce372.msg)" pick 6f33ca0 feat(fork-sync): resolutions persist as git data between runs (#1849) pick ec5756e feat(fork-sync): a pushed resolution reruns the sync from the trunk (#1850) pick 21a1043 feat(fork-sync): run the fork-sync skill through rsi-pr-agent (#1848) pick 434880c feat(fork-sync): a blocked sync labels its attention issue rsi:fork-sync (#1847) pick 8eadb9c fix(fork-sync): job mode adds the upstream remote before the dry run (#1852) pick 7c7dc13 fix(fork-meta): give the fork-sync job 45 minutes (#1853) pick dd1b537 fix(fork-sync): the job always decides and runs from an rsi-pr-agent checkout (#1854) pick 4c97819 fix(fork-sync): a red candidate starts the fork-sync job (#1855) pick ecc87d3 fix(fork-sync): carry a retired delete/modify through sync/resolution (#1856) pick dbbd60d docs(backend-attach): describe the attached primary and its seams (#1861) pick b069e64 fix(fork-meta): install pins gh's default repository to the fork (#1862) pick cdd794e test(desktop): the cross-arch probe test ignores a host ELECTRON_RUN_AS_NODE (#1859) pick fb406ff fix(github-issues): a V2 unlink of a V1 issue link survives compaction (#1858) pick 7cd6ea1 fix(fork-meta): fold apply keeps cancelling folds and never consults rerere (#1863) pick 9585bef fix(fork): refresh legacy setup scripts in project settings overrides (#1866) pick c20d6ef fix(web): client-only Connections hides managed-server controls (#1867) pick 49b3642 fix(server): fork notice follows a first /compact and native replacement (#1864) fixup 59a7b46 fixup! fix(server): fork notice follows a first /compact and native replacement (#1864) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/49b3642171ae7e7e1418d76a98b1d60e89fece08.msg)" pick d4cc6a0 fix(web): group titles name the shared subject, anchored on the parent (#1868) pick 19b9067 fix(fork-sync): export partial progress before the job limit (#1872) pick 013ccfc test(server): pin core.excludesFile in the GitManager fixture (#1874) pick 8bd2820 fix(server): issue MCP tools target a thread like the pull request tools (#1860) pick cf2e183 fix(server): a stop during the migration backup no longer kills the update (#1873) pick 7f4c625 fix(terminal): close T3 viewers of a settled lane's removed zmux session (#1876) pick 6a2844f fix(fork-sync): time the partial export by the job's clock (#1879) pick e012572 feat(web): group title becomes a tab on its parent thread (#1878) pick e6cfd23 fix(fork-sync): keep a job to one checkout, no proof clones (#1880) pick 1231787 fix(web): file saves no longer overwrite newer disk changes (#1869) pick b6dd169 fix(voice-input): one base URL derives dictation upload and live paths (#1881) pick f1e284e feat(voice-input): send per-project speech terms to the dictation service (#1882) pick a8a3005 fix(fork-sync): a job pushes its rebased tip and the driver lands it without replay (#1887) pick 6424f8a refactor(upstream-fixes): retire the terminal focus-request gate; upstream focusTerminal owns focus fixup 205c723 fixup! refactor(upstream-fixes): retire the terminal focus-request gate; upstream focusTerminal owns focus pick d48be70 fix(fork-hooks): the marker scanner skips regex literals (#1888) pick c7d647c fix(fork-sync): a no-tag rerun keeps the kept worktree's tag (#1889) pick 998088f fix(fork-sync): a session runs fork:ci on its tip before the hand-off (#1890) pick 7f8dad0 fix(fork-sync): a sync refuses a tip that lost fork hook lines (#1891) pick a1c4ebc fix(fork-sync): a landed hook retirement exempts no later sync (#1892) pick 5498116 fix(fork-ci): fork:ci runs the merge-tree gate, so a session hands off no tip CI refuses (#1893) pick d30a4fb fix(fork-ci): fork:ci runs knip and typecheck, so a session hands off no tip the Check job refuses (#1894) pick 664abd2 refactor(upstream-fixes): retire the conversation-fork title guard; upstream titles forks from inherited history pick e3e4a4e fix(fork-sync): the land run waits out candidate CI, so the report names every red job (#1895) pick 9701f0c fix(upstream-fixes): storage cleanup treats a broken gitfile as gone on newer git pick 0d463ba fix(fork-sync): the driver adds the upstream remote, and the skill allows its kept worktree (#1897) pick 1a03480 fix(fork-sync): a job session leaves no background process before it replies (#1898) pick a1ea33c refactor(markdown-editing): retire the flush hook supplied by upstream ; empty pick 1320745 chore(fork-meta): account for existing context without changing the upstream budget pick 534ee07 docs(fork-meta): track the resolved sync seams in domain scans pick 66deb1a fix(fork-ci): fork:ci runs every app and package fork test, so a session hands off no tip they fail (#1899) pick 314965b fix(fork-sync): a job out of budget hands off a red finished marker, so its replay survives the pod (#1901) pick d3e402c fix(fork-sync): a sync session folds the stack before its hand-off, so the driver stays the only trunk writer (#1902) pick 8392dad feat(web): every thread group has a parent that carries it to Working (#1904) pick 9c32ad7 fix(fork-ci): the agent context budget compares against the PR base, not upstream main (#1905) pick 3f9f73a fix(web): terminal and dictation settings render inside the settings layout (#1910) pick 42d6a9b docs(fork): README shows parent-led thread groups, live dictation, and current terminal settings (#1912) pick 02b9845 fix(dev): worktree dev servers keep their own port, process tree, and Electron profile (#1911) pick c612147 fix(zmux): worktree dev servers leave the developer's zmux sessions alone (#1913) pick ec27313 fix(fork-sync): a hook finding in a replayed commit restarts the replay instead of looping on tip fixups (#1915) pick af1f60a fix(web): distinguish window and issue-list project scopes (#1916) Fork-Sync-Tag: v0.1.4-nightly.20261028.3824 Fork-Sync-Lease: af1f60a
pick 85cd0f8 fix(upstream-fixes): mobile checkout moves keep upstream's task-permission gate pick 4f18a87 fix(ci): provision browser and fold replay prerequisites (#1666) pick adf496d fix(server): conversation forks keep their title, links, and children isolated (#1667) pick aa22745 fix(server): settle checkout-owned zmux sessions (#1665) pick 5d52d3b feat(web): add all-except project filtering (#1663) fixup 292c7e6 fixup! feat(web): add all-except project filtering (#1663) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/5d52d3b37617cacd6abe68efef3b114b308cc0ce.msg)" pick 35d7d7e feat(web): simplify the window project chooser (#1669) pick 49cad64 fix(server): deliver terminal exits to the owning viewer (#1676) pick 7c996b4 feat(terminal): open a plain shell alongside managed zmux (#1677) pick e6eb930 fix(web): preserve terminal selection across output updates (#1679) pick 92d6058 feat(server): scaffold external voice dictation (#1672) pick 24529cb feat(server): transcribe recordings with Meta Muse (#1673) pick 6257c11 feat(desktop): record dictation into editable chat drafts (#1675) fixup 89bc6e7 fixup! feat(desktop): record dictation into editable chat drafts (#1675) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/6257c1192810ad42c6e149f9cbd9a20ef60b7206.msg)" pick 7c8db8b docs(agents): tighten fork development priorities (#1683) pick 6caa4d8 fix(desktop): keep dictation transcribing across thread switches (#1684) fixup ead68e7 fixup! fix(desktop): keep dictation transcribing across thread switches (#1684) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/6caa4d8811115e55390a8c336bcc76234e9faa23.msg)" pick 800ed30 feat(desktop): stream live Meta dictation into the composer (#1686) fixup 740bd49 fixup! feat(desktop): stream live Meta dictation into the composer (#1686) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/800ed307c0d26f464320892b0941babe07baf08b.msg)" pick 3983853 docs(fork-meta): allow isolated browser verification (#1689) pick a47c10c docs(fork): showcase recent features with existing PR media (#1691) pick 67e6894 feat(desktop): duck selected speakers during dictation (#1687) fixup 36850d5 fixup! feat(desktop): duck selected speakers during dictation (#1687) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/67e689405e382b3c59fa1b52f98e237df38ed698.msg)" pick c40227a fix(fork-meta): inherit assigned Hypr workspace in desktop runner (#1690) pick b4451af fix(server): tear down zmux sessions on thread settle and delete (#1688) fixup 2af598f fixup! fix(server): tear down zmux sessions on thread settle and delete (#1688) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/b4451afea83a8018f4914e64e0a7a9c44b6203af.msg)" pick 1e056b4 feat(dictation): add configurable cleanup and formatting (#1685) fixup 06f209e fixup! feat(dictation): add configurable cleanup and formatting (#1685) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/1e056b479845c3e771897d9d340a94e5697aeda6.msg)" pick fb52655 fix(upstream-fixes): use extracted provider and replay services pick 80c87b6 fix(upstream-fixes): adapt fork services to extracted source-control and host process APIs pick 287c2d7 fix(upstream-fixes): align fork focus rings with inset indicators pick de9176b fix(fork-sync): the trunk moves only to a sha hyprws CI passed on sync/candidate (#1701) pick 2f74ffb feat(terminal): choose zmux or plain per terminal and restore sessions on unsettle (#1699) pick f43fd48 fix(upstream-fixes): provide fork Git workflow services in managed folder tests pick e6ad2ff fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) pick 08a2f80 fix(ci): run hyprws CI on stacked pull requests (#1715) pick a1cfdb3 fix(server): skip the update backup when no migrations are pending (#1711) pick ac34343 fix(fork): keep the client usable while the attached server restarts (#1712) pick 8df49c9 fix(web): show server update progress through reconnect (#1713) fixup 1c56ae7 fixup! fix(web): show server update progress through reconnect (#1713) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/8df49c97f6925ae381ffb7ecd53d3e457e28cc24.msg)" pick afe2734 fix(server): log memory high-water marks and snapshot the heap at 4 GiB (#1718) pick e905bde fix(server): record main-thread stacks when memory bursts past 4 GiB (#1719) pick ba8335a fix(desktop): keep the attached server through a stall (#1721) pick cb27f62 fix(server): stop syncing the SQLite WAL on every commit (#1722) pick 3ee6cba fix(server): purge imported v1 rows the v2 runtime never reads (#1723) pick 021b837 fix(ci): force upstream tag fetches so a moved tag cannot block releases (#1724) pick a473b09 fix(server): return thread waits when input is needed (#1736) fixup 7f92cc8 fixup! fix(server): return thread waits when input is needed (#1736) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/a473b09e495cad1421bb0e4cb2a9049f2c24889a.msg)" pick a958a4e fix(checkout): preserve turns and shared sources during moves (#1733) pick 7ef7b86 fix(server): retire live work when provider sessions detach (#1734) pick 0313964 fix(terminal): keep terminals through checkout moves (#1738) fixup 7b70026 fixup! fix(terminal): keep terminals through checkout moves (#1738) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/0313964c3c2d131d675637a9da738891d0eb0b32.msg)" pick f622f4a fix(web): pair on same-tab token hash navigation (#1740) pick 33743d6 fix(zmux): handle workspace basename collisions (#1741) pick 44b7dbc fix(mcp): hide tools refused by read-only grants (#1742) fixup 2585ace fixup! fix(mcp): hide tools refused by read-only grants (#1742) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/44b7dbc751a12a7b9fbf585ca10e6daffcf233c1.msg)" pick cdd21bc fix(web): preserve formatter-clean rich Markdown markers (#1743) pick 7c7faf7 fix(issues): persist controls, show parents, and search all issues (#1744) pick 8cd1cd8 fix(upstream-fixes): fork code calls the Effect 4.0.4 randomUUIDv4 function pick 49e5314 refactor(upstream-fixes): sampled planner statistics defer to upstream ; empty pick 5b8b460 fix(fork): hook guard matches replayed lines across re-indentation pick 7d1a2aa fix(web): update everything updates the attached service in client-only mode (#1751) pick f053d33 refactor(upstream-fixes): fork GitHub issue and attachment paths use upstream's request policy after `pingdotgg#19224` pick 40e475e refactor(upstream-fixes): fork WS RPCs get their own handler layer under TypeScript's instantiation limit pick bb196b3 test(upstream-fixes): fork ingestor tests provide upstream's GitVcsDriver (`pingdotgg#20079`) and CommandOutputHub (`pingdotgg#15094`) pick 953db7a fix(git): name the thread in checkout move refusals (#1762) pick 284943c fix(web): retarget hidden terminal splits when shown (#1763) pick 20b4aa4 fix(voice): show redacted provider detail when cleanup fails (#1765) pick 22e1a1e fix(release): build only AppImages for fork Linux releases (#1768) pick 6421c4d fix(web): align group title generation budgets (#1769) pick 4b03981 fix(web): autosave rich Markdown and save files with Ctrl+S (#1770) fixup c6f0754 fixup! fix(web): autosave rich Markdown and save files with Ctrl+S (#1770) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/4b03981264d1eb75c70dc2f8d0eec2abd9ba58cc.msg)" pick 545c871 fix(pr): stop turn refreshes from rereading review activity (#1771) pick 3bb83d3 fix(server): strip desktop launcher environment before providers start (#1766) pick 10ce76a fix(desktop): ignore installed dependencies in pack watchers (#1767) pick 7bec9b3 feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) fixup 59d45ec fixup! feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/7bec9b3103dee6f3e8b96cc3d6db7ad4fd7c6897.msg)" pick 10f7a3d fix(upstream-fixes): fork scripts drop section dividers upstream's no-low-value-comments lint refuses pick eb97ac5 refactor(upstream-fixes): retire the fork's activities purge now upstream drops the table pick eeef974 fix(ci): install Chromium for release web browser tests (#1778) pick 74f1379 fix(fork-sync): a file's second hooked commit re-applies; hooks must stay pure insertions (#1780) pick 179b030 refactor(desktop): retire the fork second-instance buffer for upstream's pick 53c1d1a fix(fork-sync): hook guard, hook re-apply, and fold check each drop a manual repair (#1782) pick 260d02a chore(fork-meta): run Macroscope check-run agents as rsi-pr-agent workflows (#1786) pick 850335e chore(fork-meta): run rsi-pr-agent workflows on the merged pr-change trigger (#1788) pick 02b0311 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) pick 448da8c fix(web): use shared custom agent menu heading (#1796) pick 012cb09 fix(web): compose thread group section headers (#1797) pick 5238881 fix(web): compose bookmark rows from shared primitives (#1798) pick 874ffea fix(web): use shared primitives for GitHub issue controls (#1799) pick 7f24727 fix(voice-input): use InlineButton for processing error dismissal (#1800) pick b7af052 fix(ci): release web tests pin the upstream release repository (#1802) pick e1fad55 fix(web): dictation fills AskUserQuestion custom answers (#1803) pick f27d098 fix(fork-sync): an exact upstream backport may drop its PR link (#1805) pick fe75d4c fix(fork-meta): browser test siblings keep the .browser infix (#1806) pick 323a48d test(upstream-fixes): retire fork resume-routing tests superseded by upstream `pingdotgg#21615` pick ee8c9fe refactor(multi-window): route-navigation seams become marked insertions pick d2003ea refactor(multi-window): createWindow seams become marked insertions (#1811) pick 6f5494e fix(fork-meta): fork-fold folds a sync's trailerless fixup into its owner (#1814) pick 9a87a2c perf(fork-meta): fork scan reads blobs through one git cat-file, not one git show per path (#1815) pick bcc5966 refactor(server): retire duplicate fork SQLite WAL sync policy (#1823) pick a3d23d5 refactor(upstream-fixes): retire legacy V1 event purge (#1824) pick 9b254b3 refactor(desktop): extract remaining window helper seams (#1820) pick bd63a47 refactor(fork): share one sync attention issue (#1822) pick a9230b5 refactor(fork-meta): isolate scan git reading (#1819) pick 5d5f3eb refactor(fork-meta): fork scan refuses every finding; the replay baseline is gone (#1826) pick 96ccee7 fix(upstream-fixes): agents no longer inherit the live server's port settings (#1828) pick de66979 refactor(fork-meta): drop the dev-app launcher; agents run upstream dev and place windows with donjor hypr (#1827) pick ffe001b feat(web): thread groups span projects and can mark a parent thread (#1829) fixup 0a387aa fixup! feat(web): thread groups span projects and can mark a parent thread (#1829) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/ffe001b8efcae27f417731f0eb795bc49ab8f665.msg)" pick b7b6592 fix(server): in-thread MCP thread reads show background work (#1831) fixup 35433a7 fixup! fix(server): in-thread MCP thread reads show background work (#1831) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/b7b6592383dc1952310f272f62c42df013b23313.msg)" pick 80b6e0f refactor(upstream-fixes): retire the fork's separate WS handler layer for upstream's split table pick 2cb66a3 fix(fork-sync): reruns continue the rebase, fork:ci gates the candidate, tip commits survive a recreate (#1833) pick 3f3567c fix(ci): release CLI executable builds on the engines.node pin (#1834) pick 978268a fix(fork-sync): wait for setup, follow the trunk, root at the main checkout (#1835) pick 1498f21 fix(desktop): wait for the service update handoff before startup discovery (#1838) pick 94bb436 fix(server): t3 update waits for a pending remote update (#1837) pick 41187c6 chore(fork-meta): teach rsi-pr-agent workflows the fork hook seam (#1839) pick 01547bb feat(server): thread groups live on the server with agent tools (#1840) fixup a4b48f8 fixup! feat(server): thread groups live on the server with agent tools (#1840) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/01547bbc3c864174352e9cb4d32ec0fa8d6ce372.msg)" pick 6f33ca0 feat(fork-sync): resolutions persist as git data between runs (#1849) pick ec5756e feat(fork-sync): a pushed resolution reruns the sync from the trunk (#1850) pick 21a1043 feat(fork-sync): run the fork-sync skill through rsi-pr-agent (#1848) pick 434880c feat(fork-sync): a blocked sync labels its attention issue rsi:fork-sync (#1847) pick 8eadb9c fix(fork-sync): job mode adds the upstream remote before the dry run (#1852) pick 7c7dc13 fix(fork-meta): give the fork-sync job 45 minutes (#1853) pick dd1b537 fix(fork-sync): the job always decides and runs from an rsi-pr-agent checkout (#1854) pick 4c97819 fix(fork-sync): a red candidate starts the fork-sync job (#1855) pick ecc87d3 fix(fork-sync): carry a retired delete/modify through sync/resolution (#1856) pick dbbd60d docs(backend-attach): describe the attached primary and its seams (#1861) pick b069e64 fix(fork-meta): install pins gh's default repository to the fork (#1862) pick cdd794e test(desktop): the cross-arch probe test ignores a host ELECTRON_RUN_AS_NODE (#1859) pick fb406ff fix(github-issues): a V2 unlink of a V1 issue link survives compaction (#1858) pick 7cd6ea1 fix(fork-meta): fold apply keeps cancelling folds and never consults rerere (#1863) pick 9585bef fix(fork): refresh legacy setup scripts in project settings overrides (#1866) pick c20d6ef fix(web): client-only Connections hides managed-server controls (#1867) pick 49b3642 fix(server): fork notice follows a first /compact and native replacement (#1864) fixup 59a7b46 fixup! fix(server): fork notice follows a first /compact and native replacement (#1864) exec git commit --amend --no-verify -F "$(git rev-parse --git-path fork-sync-folds/49b3642171ae7e7e1418d76a98b1d60e89fece08.msg)" pick d4cc6a0 fix(web): group titles name the shared subject, anchored on the parent (#1868) pick 19b9067 fix(fork-sync): export partial progress before the job limit (#1872) pick 013ccfc test(server): pin core.excludesFile in the GitManager fixture (#1874) pick 8bd2820 fix(server): issue MCP tools target a thread like the pull request tools (#1860) pick cf2e183 fix(server): a stop during the migration backup no longer kills the update (#1873) pick 7f4c625 fix(terminal): close T3 viewers of a settled lane's removed zmux session (#1876) pick 6a2844f fix(fork-sync): time the partial export by the job's clock (#1879) pick e012572 feat(web): group title becomes a tab on its parent thread (#1878) pick e6cfd23 fix(fork-sync): keep a job to one checkout, no proof clones (#1880) pick 1231787 fix(web): file saves no longer overwrite newer disk changes (#1869) pick b6dd169 fix(voice-input): one base URL derives dictation upload and live paths (#1881) pick f1e284e feat(voice-input): send per-project speech terms to the dictation service (#1882) pick a8a3005 fix(fork-sync): a job pushes its rebased tip and the driver lands it without replay (#1887) pick 6424f8a refactor(upstream-fixes): retire the terminal focus-request gate; upstream focusTerminal owns focus fixup 205c723 fixup! refactor(upstream-fixes): retire the terminal focus-request gate; upstream focusTerminal owns focus pick d48be70 fix(fork-hooks): the marker scanner skips regex literals (#1888) pick c7d647c fix(fork-sync): a no-tag rerun keeps the kept worktree's tag (#1889) pick 998088f fix(fork-sync): a session runs fork:ci on its tip before the hand-off (#1890) pick 7f8dad0 fix(fork-sync): a sync refuses a tip that lost fork hook lines (#1891) pick a1c4ebc fix(fork-sync): a landed hook retirement exempts no later sync (#1892) pick 5498116 fix(fork-ci): fork:ci runs the merge-tree gate, so a session hands off no tip CI refuses (#1893) pick d30a4fb fix(fork-ci): fork:ci runs knip and typecheck, so a session hands off no tip the Check job refuses (#1894) pick 664abd2 refactor(upstream-fixes): retire the conversation-fork title guard; upstream titles forks from inherited history pick e3e4a4e fix(fork-sync): the land run waits out candidate CI, so the report names every red job (#1895) pick 9701f0c fix(upstream-fixes): storage cleanup treats a broken gitfile as gone on newer git pick 0d463ba fix(fork-sync): the driver adds the upstream remote, and the skill allows its kept worktree (#1897) pick 1a03480 fix(fork-sync): a job session leaves no background process before it replies (#1898) pick a1ea33c refactor(markdown-editing): retire the flush hook supplied by upstream ; empty pick 1320745 chore(fork-meta): account for existing context without changing the upstream budget pick 534ee07 docs(fork-meta): track the resolved sync seams in domain scans pick 66deb1a fix(fork-ci): fork:ci runs every app and package fork test, so a session hands off no tip they fail (#1899) pick 314965b fix(fork-sync): a job out of budget hands off a red finished marker, so its replay survives the pod (#1901) pick d3e402c fix(fork-sync): a sync session folds the stack before its hand-off, so the driver stays the only trunk writer (#1902) pick 8392dad feat(web): every thread group has a parent that carries it to Working (#1904) pick 9c32ad7 fix(fork-ci): the agent context budget compares against the PR base, not upstream main (#1905) pick 3f9f73a fix(web): terminal and dictation settings render inside the settings layout (#1910) pick 42d6a9b docs(fork): README shows parent-led thread groups, live dictation, and current terminal settings (#1912) pick 02b9845 fix(dev): worktree dev servers keep their own port, process tree, and Electron profile (#1911) pick c612147 fix(zmux): worktree dev servers leave the developer's zmux sessions alone (#1913) pick ec27313 fix(fork-sync): a hook finding in a replayed commit restarts the replay instead of looping on tip fixups (#1915) pick af1f60a fix(web): distinguish window and issue-list project scopes (#1916) Fork-Sync-Tag: v0.1.4-nightly.20261028.3824 Fork-Sync-Lease: af1f60a
## Problem The project chooser's separate mode controls did not fit the app's native project list. ## Change Restores the icon-bearing **All projects** row and places the standard **Exclude** Switch at its right edge, keeping the current popup width. All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows **No projects**. Explicit No projects also publishes an empty desktop project scope. Stacked above #1663. The maintainer approved this design after VMON-3 review. Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged. **Preserved defect:** excluding every project still makes the new-thread picker list all excluded projects. This parent defect remains at the maintainer's request. ## Verification Head: `69eb05f7ba6205a4dae4ea903374e855365255ef`. Parent: `486b691b3eebbfe4b17960c9a9d6cdebcbef1a20`. | Check | Result | | --- | --- | | Chooser and window-scope tests | Exit 0, 24 tests | | Web typecheck and production build | Exit 0 each | | `vp run fork:ci` on this head | Exit 0 | | React Doctor, changed files | Exit 0, no findings; score 66/100 | | Real Chrome on VMON-3 | Desktop, 375px, pointer, Tab/Space, Home/Enter reset | | Search, modes, counts, All/None | Pass; None survives reload | | All-six-excluded picker | Known failure reproduced and preserved | | Required GitHub checks at 69eb05f | All eight passed | Native Electron, native mobile, and remote/relay/tunnel connections were not exercised. T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized. <details> <summary>Aftercare findings and limits</summary> The automated report is still marked reviewing older head `6b3d782`; its last completed findings refer to `c6a7e81`. No automated review of this head is claimed. | Item | Current source/evidence | | --- | --- | | A1: None reported as all projects | Fixed in `windowProjects.fork.ts`, with empty inclusion/publication regressions | | A2: unequal segmented controls | Superseded by the native Switch design; narrow layout inspected | | A3: all-excluded picker fallback | Intentionally preserved; reproduced with all six fixtures | Parent aftercare also remains in progress on `486b691`; all eight parent required checks passed. No aftercare job, bot-owned report, or other owner's session was modified. </details> <details> <summary>Before and after</summary> | Original parent chooser at 705e594 | Approved chooser at 69eb05f | | --- | --- | |  |  | </details> <details> <summary>Current-head Hypr recording and receipts</summary> Open the chooser, search gh, pick gh-bot and zmux, see **Projects: 2 selected**, exclude both, see **Projects: All except 2**, switch back, and reset All projects. The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936. https://github.com/user-attachments/assets/0c52e249-b643-4798-9829-7c1fd61ea41f Hypr take `rec-e04f.e1`, window `18000197`, VMON-3, workspace 103. H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes. Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop `380:480:0:86`. Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged. Project names and icons remain visible. The published attachment was downloaded through `ghb attachment get`, matched byte-for-byte, and played in Chrome to `ended=true`, time/duration 11.2, error null. SHA-256: `a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b`. GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed. The CLI returned page `pg-29`, rather than a lease UUID; no strict accept-envelope validation is claimed. Actual tool-result receipts: | Result | Observed operation | | --- | --- | | `102f5a`, exit 0 | Read hypr, chrome-debug, frontend-design, ui, zmux SKILL.md contents | | `546914`, exit 0 | Read gh-bot, gh-post, writing-md SKILL.md contents | | `076658`, exit 0 | Read evidence upload/readback guide and gh-post style | | `cf683b`, exit 0 | Read gh-bot, gh-tracking, gh-post before publication | | `7c6c78` / `6870b2`, exit 0 | Hypr capture start/stop | | `2c19fb`, exit 0 | Trim/crop final recording and hash | | `b7b1bf`, exit 0 | Upload current-head screenshot and recording | | `54949f`, exit 0 | Download and byte comparison of published recording | These are actual read/result receipts, rather than skill loading inferred from screenshots. Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used. </details> Model: GPT-6.1-Sol. Harness: Codex. ## Fork trailers Squashes: - e16eaa2 feat(web): simplify the window project chooser (#1669) (#1669) - 3af673d fixup! feat(web): simplify the window project chooser (#1669) (#1669) - e2e24ff feat(web): simplify the window project chooser (#1669) (#1669) - 96f2eb5 fixup! feat(web): simplify the window project chooser (#1669) (#1669) Fork-Domain: workspaces Fork-Tier: qol Fork-Upstreamable: no
Problem
The project chooser's separate mode controls did not fit the app's native project list.
Change
Restores the icon-bearing All projects row and places the standard Exclude Switch at its right edge, keeping the current popup width.
All projects resets picks and exclusion; the Switch retains picks while changing their meaning; clearing included picks shows No projects.
Explicit No projects also publishes an empty desktop project scope.
Stacked above #1663.
The maintainer approved this design after VMON-3 review.
Shared web/desktop chooser and client filter helpers; mobile UI, providers, and wire contracts are unchanged.
Preserved defect: excluding every project still makes the new-thread picker list all excluded projects.
This parent defect remains at the maintainer's request.
Verification
Head:
69eb05f7ba6205a4dae4ea903374e855365255ef.Parent:
486b691b3eebbfe4b17960c9a9d6cdebcbef1a20.vp run fork:cion this headNative Electron, native mobile, and remote/relay/tunnel connections were not exercised.
T3 preview was unavailable because of host AppArmor; Hypr verification was explicitly authorized.
Aftercare findings and limits
The automated report is still marked reviewing older head
6b3d782; its last completed findings refer toc6a7e81.No automated review of this head is claimed.
windowProjects.fork.ts, with empty inclusion/publication regressionsParent aftercare also remains in progress on
486b691; all eight parent required checks passed.No aftercare job, bot-owned report, or other owner's session was modified.
Before and after
Current-head Hypr recording and receipts
Open the chooser, search gh, pick gh-bot and zmux, see Projects: 2 selected, exclude both, see Projects: All except 2, switch back, and reset All projects.
The clean checkout at the full head above served the actual changed chooser from isolated worktree state on port 5936.
chooser-69eb05f7-vmon.mp4
Hypr take
rec-e04f.e1, window18000197, VMON-3, workspace 103.H.264, 380x480, 11.2 seconds, 30fps, no audio or speed changes.
Retained raw 9.8-21.0 seconds; removed opening 0-9.8 and trailing 21.0-21.07 idle; no internal cuts; crop
380:480:0:86.Browser-only masking hides thread content and main; the chooser and its native count tooltips are unchanged.
Project names and icons remain visible.
The published attachment was downloaded through
ghb attachment get, matched byte-for-byte, and played in Chrome toended=true, time/duration 11.2, error null.SHA-256:
a98f972b9d82c9dc7fa5d65f573c2df5a8b2bd0a7879793c7bc7fa766f8ee68b.GitHub's embedded player is unverified; no accepted peer or grounder handoff is claimed.
The CLI returned page
pg-29, rather than a lease UUID; no strict accept-envelope validation is claimed.Actual tool-result receipts:
102f5a, exit 0546914, exit 0076658, exit 0cf683b, exit 07c6c78/6870b2, exit 02c19fb, exit 0b7b1bf, exit 054949f, exit 0These are actual read/result receipts, rather than skill loading inferred from screenshots.
Body publication uses the active Codex harness directly because managed-terminal publishing previously lacked caller provenance; no identity bypass is used.
Model: GPT-6.1-Sol. Harness: Codex.
Fork trailers
Fork-Domain: workspaces
Fork-Tier: qol