Repository navigation
feat(files): reveal ignored workspace files - #73
Merged
Merged
Conversation
Fork-Domain: workspace-files Fork-Tier: core
Author
Reviewed |
Fork-Domain: workspace-files Fork-Tier: core
donjor
force-pushed
the
t3code/address-issue-39
branch
from
August 24, 2026 10:30
efbac9e to
9d370be
Compare
Author
Reviewed |
donjor
marked this pull request as ready for review
August 24, 2026 10:37
donjor
added a commit
that referenced
this pull request
Aug 24, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
added a commit
that referenced
this pull request
Aug 27, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
added a commit
that referenced
this pull request
Aug 28, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
added a commit
that referenced
this pull request
Aug 29, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
added a commit
that referenced
this pull request
Aug 30, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
added a commit
that referenced
this pull request
Aug 30, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
added a commit
that referenced
this pull request
Aug 30, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
added a commit
that referenced
this pull request
Sep 2, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
added a commit
that referenced
this pull request
Sep 2, 2026
## What Changed Appends the churn-ledger row for the `v0.0.38-nightly.20260901.1242` unblock walk. Generated by `node scripts/fork-churn.ts append`; `docs/internals/fork-churn.md` is not hand-edited. | Field | Value | | --- | --- | | Range | `47367dbc05e1a530cddb8217ca52566f43f37c91` → `c3986f00fd16aa9e10135c07672923b6d8fc6963` | | Conflicts | mechanical: 2 | | Decisions | 8 agent, 0 human | Both conflicts were resolved and recorded before the gate ran: - `apps/web/src/components/files/FileBrowserPanel.tsx` in `69b8fff2a5e1` `feat(files): reveal ignored workspace files (#73)`. Union resolution. Upstream added expand-collapse-all icons and a `directoryPaths` memo at the same two seams where the fork adds its eye-toggle icons and its `ignoredGitStatus` memo. The two sides share no identifier and no behavior. - `apps/web/src/components/BranchToolbarEnvModeSelector.tsx` in `437cc797f7ce` `feat: New worktrunk thread mode replaces the Worktrunk hook switches`. Rerere replay, reviewed before staging. Upstream's compact-label layout is kept, and the fork's Worktrunk icon branch and its two-argument label call survive inside it. Three commits arrived flagged as retire candidates and all three were kept. The target tag contains no implementation of any of them: `apps/web/src/components/files/FileBrowserPanel.tsx` at the tag has zero references to ignored entries, and `apps/web/src/components/settings/settingsSearch.ts` has zero references to handoff prompts or Worktrunk. Each flag was list-append proximity in the same file, not a behavior seam. ## Why The row lands after the apply and is not part of the rebased lane, so it ships as its own docs-only change. ## Verification - `node scripts/fork-churn.ts render --check`: current - Gate 3 on the pushed lane: `fork:scan` passed, `fork:delta --check` passed, hyprws CI passed ## Checklist - [x] Ledger regenerated, not hand-edited - [x] Row range matches the applied lease and installed head Refs #404 Fork-Domain: fork-meta Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Sep 2, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
added a commit
that referenced
this pull request
Sep 2, 2026
## What Changed Appends the churn-ledger row for the `v0.0.38-nightly.20260901.1242` unblock walk. Generated by `node scripts/fork-churn.ts append`; `docs/internals/fork-churn.md` is not hand-edited. | Field | Value | | --- | --- | | Range | `47367dbc05e1a530cddb8217ca52566f43f37c91` → `c3986f00fd16aa9e10135c07672923b6d8fc6963` | | Conflicts | mechanical: 2 | | Decisions | 8 agent, 0 human | Both conflicts were resolved and recorded before the gate ran: - `apps/web/src/components/files/FileBrowserPanel.tsx` in `69b8fff2a5e1` `feat(files): reveal ignored workspace files (#73)`. Union resolution. Upstream added expand-collapse-all icons and a `directoryPaths` memo at the same two seams where the fork adds its eye-toggle icons and its `ignoredGitStatus` memo. The two sides share no identifier and no behavior. - `apps/web/src/components/BranchToolbarEnvModeSelector.tsx` in `437cc797f7ce` `feat: New worktrunk thread mode replaces the Worktrunk hook switches`. Rerere replay, reviewed before staging. Upstream's compact-label layout is kept, and the fork's Worktrunk icon branch and its two-argument label call survive inside it. Three commits arrived flagged as retire candidates and all three were kept. The target tag contains no implementation of any of them: `apps/web/src/components/files/FileBrowserPanel.tsx` at the tag has zero references to ignored entries, and `apps/web/src/components/settings/settingsSearch.ts` has zero references to handoff prompts or Worktrunk. Each flag was list-append proximity in the same file, not a behavior seam. ## Why The row lands after the apply and is not part of the rebased lane, so it ships as its own docs-only change. ## Verification - `node scripts/fork-churn.ts render --check`: current - Gate 3 on the pushed lane: `fork:scan` passed, `fork:delta --check` passed, hyprws CI passed ## Checklist - [x] Ledger regenerated, not hand-edited - [x] Row range matches the applied lease and installed head Refs #404 Fork-Domain: fork-meta Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Sep 2, 2026
## What Changed Appends the churn-ledger row for the `v0.0.38-nightly.20260901.1246` unblock walk. Generated by `node scripts/fork-churn.ts append`; `docs/internals/fork-churn.md` is not hand-edited. | Field | Value | | --- | --- | | Range | `2d147f3dca40f0e163107e9cc262e144a7a312ce` → `a32f247995fd8f79ae5d9c234fc2f8b7c3431acc` | | Conflicts | mechanical: 10 | | Decisions | 33 agent, 0 human | The widest walk so far, and every conflict is mechanical. Two upstream changes account for eight of the ten. ## Server-side settling deletes fork context `fix(server): settle threads server-side` moves settled-state resolution out of the clients and deletes the device preferences that fed it. Five fork hunks carried those deletions as context, so each conflict is the same shape: keep the fork's real addition, let upstream's removal stand. - `apps/desktop/src/settings/DesktopClientSettings.test.ts`, `apps/mobile/src/persistence/mobile-preferences.ts`, and `apps/mobile/src/features/settings/SettingsRouteScreen.tsx` keep only `showIgnoredFiles`. Upstream replaced the mobile device-preference auto-settle switch with a per-connection `EnvironmentAutoSettleSwitch`, so the fork's switch is superseded rather than dropped. - `apps/web/src/components/ChatView.tsx` keeps only `issuesSurfaceAvailable`. The change-request memo upstream deleted has no remaining reference in either tree. - `apps/web/src/components/Sidebar.tsx` is a `useMemo` dependency list. Two of the three dropped deps no longer exist in the component and the third is read only outside the memo. - `apps/web/src/hooks/useNowMinute.ts` is a doc comment with no code in the hunk, resolved to upstream's shorter header. ## Upstream hoisted PullRequestServiceLive Both `apps/server/src/server.ts` conflicts are the same hoist. Upstream declares `PullRequestServiceLive` earlier in the file, so a fork hunk that touched the old site re-added it as a duplicate. Each resolution drops the duplicate and preserves the fork's real change: `GitHubIssueServiceLive` in the first, `Layer.provide(PullRequestAttachmentStore.layer)` in the second. The file now declares each layer once. ## Remaining two - `apps/server/src/git/GitManager.test.ts` is an additive union in the `makeManager` options type. Upstream added `gitConfigReads`, the fork adds `zmuxSessionBinder`, and both already have consumers further down the helper. - `apps/web/src/routes/_chat.pull-requests.tsx` moves upstream's `statsPolicy` derivation next to the `sort` it reads. Upstream derives it in a single page component; the fork splits that component so the route view is a thin wrapper, and every consumer already lives in `PullRequestsPage`. ## Retire candidates Nine commits arrived flagged and all nine were kept. Each flag is proximity to a conflicting upstream file, not a behaviour overlap in the target tree: `feat(files): reveal ignored workspace files (#73)`, `feat(web): scope pull requests to project windows`, `feat(web): expose Worktrunk hook settings`, `fix(web): add Issues to right-panel launchers (#193)`, `fix(server): bound child-work detail responses`, `feat(server): preserve child result and diff detail`, `fix(web): keep sidebar groups in automatic order`, `feat(web): add sidebar group membership actions`, and `fix(web): preview sidebar group dissolution`. ## Silent seams None. The rehearsed head typechecks clean across the workspace. ## Why The row lands after the apply and is not part of the rebased lane, so it ships as its own docs-only change. ## Verification - `node scripts/fork-churn.ts render --check`: current - Gate 3 on the pushed lane: `fork:scan` passed, `fork:delta --check` passed, hyprws CI passed ## Checklist - [x] Ledger regenerated, not hand-edited - [x] Row range matches the applied lease and installed head Refs #408 Fork-Domain: fork-meta Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Sep 4, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
added a commit
that referenced
this pull request
Sep 6, 2026
## What Changed Appends the churn-ledger row for the `v0.0.38-nightly.20260901.1242` unblock walk. Generated by `node scripts/fork-churn.ts append`; `docs/internals/fork-churn.md` is not hand-edited. | Field | Value | | --- | --- | | Range | `47367dbc05e1a530cddb8217ca52566f43f37c91` → `c3986f00fd16aa9e10135c07672923b6d8fc6963` | | Conflicts | mechanical: 2 | | Decisions | 8 agent, 0 human | Both conflicts were resolved and recorded before the gate ran: - `apps/web/src/components/files/FileBrowserPanel.tsx` in `69b8fff2a5e1` `feat(files): reveal ignored workspace files (#73)`. Union resolution. Upstream added expand-collapse-all icons and a `directoryPaths` memo at the same two seams where the fork adds its eye-toggle icons and its `ignoredGitStatus` memo. The two sides share no identifier and no behavior. - `apps/web/src/components/BranchToolbarEnvModeSelector.tsx` in `437cc797f7ce` `feat: New worktrunk thread mode replaces the Worktrunk hook switches`. Rerere replay, reviewed before staging. Upstream's compact-label layout is kept, and the fork's Worktrunk icon branch and its two-argument label call survive inside it. Three commits arrived flagged as retire candidates and all three were kept. The target tag contains no implementation of any of them: `apps/web/src/components/files/FileBrowserPanel.tsx` at the tag has zero references to ignored entries, and `apps/web/src/components/settings/settingsSearch.ts` has zero references to handoff prompts or Worktrunk. Each flag was list-append proximity in the same file, not a behavior seam. ## Why The row lands after the apply and is not part of the rebased lane, so it ships as its own docs-only change. ## Verification - `node scripts/fork-churn.ts render --check`: current - Gate 3 on the pushed lane: `fork:scan` passed, `fork:delta --check` passed, hyprws CI passed ## Checklist - [x] Ledger regenerated, not hand-edited - [x] Row range matches the applied lease and installed head Refs #404 Fork-Domain: fork-meta Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Sep 6, 2026
## What Changed Appends the churn-ledger row for the `v0.0.38-nightly.20260901.1246` unblock walk. Generated by `node scripts/fork-churn.ts append`; `docs/internals/fork-churn.md` is not hand-edited. | Field | Value | | --- | --- | | Range | `2d147f3dca40f0e163107e9cc262e144a7a312ce` → `a32f247995fd8f79ae5d9c234fc2f8b7c3431acc` | | Conflicts | mechanical: 10 | | Decisions | 33 agent, 0 human | The widest walk so far, and every conflict is mechanical. Two upstream changes account for eight of the ten. ## Server-side settling deletes fork context `fix(server): settle threads server-side` moves settled-state resolution out of the clients and deletes the device preferences that fed it. Five fork hunks carried those deletions as context, so each conflict is the same shape: keep the fork's real addition, let upstream's removal stand. - `apps/desktop/src/settings/DesktopClientSettings.test.ts`, `apps/mobile/src/persistence/mobile-preferences.ts`, and `apps/mobile/src/features/settings/SettingsRouteScreen.tsx` keep only `showIgnoredFiles`. Upstream replaced the mobile device-preference auto-settle switch with a per-connection `EnvironmentAutoSettleSwitch`, so the fork's switch is superseded rather than dropped. - `apps/web/src/components/ChatView.tsx` keeps only `issuesSurfaceAvailable`. The change-request memo upstream deleted has no remaining reference in either tree. - `apps/web/src/components/Sidebar.tsx` is a `useMemo` dependency list. Two of the three dropped deps no longer exist in the component and the third is read only outside the memo. - `apps/web/src/hooks/useNowMinute.ts` is a doc comment with no code in the hunk, resolved to upstream's shorter header. ## Upstream hoisted PullRequestServiceLive Both `apps/server/src/server.ts` conflicts are the same hoist. Upstream declares `PullRequestServiceLive` earlier in the file, so a fork hunk that touched the old site re-added it as a duplicate. Each resolution drops the duplicate and preserves the fork's real change: `GitHubIssueServiceLive` in the first, `Layer.provide(PullRequestAttachmentStore.layer)` in the second. The file now declares each layer once. ## Remaining two - `apps/server/src/git/GitManager.test.ts` is an additive union in the `makeManager` options type. Upstream added `gitConfigReads`, the fork adds `zmuxSessionBinder`, and both already have consumers further down the helper. - `apps/web/src/routes/_chat.pull-requests.tsx` moves upstream's `statsPolicy` derivation next to the `sort` it reads. Upstream derives it in a single page component; the fork splits that component so the route view is a thin wrapper, and every consumer already lives in `PullRequestsPage`. ## Retire candidates Nine commits arrived flagged and all nine were kept. Each flag is proximity to a conflicting upstream file, not a behaviour overlap in the target tree: `feat(files): reveal ignored workspace files (#73)`, `feat(web): scope pull requests to project windows`, `feat(web): expose Worktrunk hook settings`, `fix(web): add Issues to right-panel launchers (#193)`, `fix(server): bound child-work detail responses`, `feat(server): preserve child result and diff detail`, `fix(web): keep sidebar groups in automatic order`, `feat(web): add sidebar group membership actions`, and `fix(web): preview sidebar group dissolution`. ## Silent seams None. The rehearsed head typechecks clean across the workspace. ## Why The row lands after the apply and is not part of the rebased lane, so it ships as its own docs-only change. ## Verification - `node scripts/fork-churn.ts render --check`: current - Gate 3 on the pushed lane: `fork:scan` passed, `fork:delta --check` passed, hyprws CI passed ## Checklist - [x] Ledger regenerated, not hand-edited - [x] Row range matches the applied lease and installed head Refs #408 Fork-Domain: fork-meta Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Sep 6, 2026
> 🤖 pi/meta muse-spark-1.3-contributor (high) ## Problem Upstream-sync run `33806918890` reported that `d8d6f71 feat(files): reveal ignored workspace files (#73)` conflicts in the mobile `ThreadFilesRouteScreen.tsx` against `v0.0.39-nightly.20260903.1272`. PR 543 moved the route's ignored-file preference and request policy behind the fork-owned `ignoredWorkspaceFileListing.ts` boundary, and PR 601 added the `mobile-ignored-file-listing` authoring guard. The guard only named the route screen, but the adaptive inspector (`thread-file-navigator-pane.tsx`) reuses the same boundary with its own inline policy shape, so a future edit could regrow inline policy there undetected. ## Boundary chosen No behavior change. The boundary stays `apps/mobile/src/features/files/ignoredWorkspaceFileListing.ts` with its `resolveIgnoredWorkspaceFileListing` / `useIgnoredWorkspaceFileListing` adapter. Upstream files keep the narrow integration point: one import plus one call (`useIgnoredWorkspaceFileListing(cwd)` / `(props.cwd)`), retaining their environment and file-inspector gates. This change extends the guard's declared targets, matcher, and inventory wording to cover both the route screen and the inspector, so the leased `#498` rewrite can keep the upstream route screen and attach ignored-file behavior through the boundary. ## Guard Extended the adopted `mobile-ignored-file-listing` rule in `scripts/fork-scan-guards.ts`: - `AUTHORING_GUARD_TARGETS` gains the inspector path alongside the route path. - The warning prose names both surfaces. - `scripts/fork-scan-guards.test.ts` gains inspector rejection/permit cases. - `scripts/fork-scan-authoring.test.ts` retargets the request-policy fixture at the inspector. - `docs/internals/fork-delta.md` workspace-files shape names both surfaces. ## Evidence | Check | Result | | --- | --- | | `vp test run scripts/fork-scan-guards.test.ts scripts/fork-scan-authoring.test.ts scripts/fork-lesson-guidance.test.ts` | 57 passed | | `vp test run apps/mobile/src/features/files/ignoredWorkspaceFileListing.fork.test.ts apps/mobile/src/features/files/fileTree.fork.test.ts` | 5 passed | | `vp run --filter @t3tools/mobile typecheck` | passed | | `vp lint` (touched scripts) | passed, no findings | | `vp fmt --check` (touched files) | passed | | `vp run fork:delta --check` | ok: 304 fork commits tagged | | `vp run fork:scan --no-typecheck --since origin/hyprws` | no new warnings on this branch; the 41 rebase-scan gaps and 2 workflow-drift gaps are pre-existing on `origin/hyprws` and untouched by this change | | `vp run fork:delta --check` full-scan gap check | pre-existing gaps only, verified identical with the change stashed | ## Surfaces walked - **Entry points.** The ignored-file preference is reachable from the mobile General settings switch, the file-tree toolbar toggle (web), and both mobile listing surfaces. This change touches only guard scope, not behavior, so all entry points keep their existing wiring. - **Clients.** Mobile is the affected client; the boundary and both integration points are mobile-only. Web/desktop settings and listing paths are untouched. - **Providers.** Not applicable: no provider adapter is involved. - **Contracts.** Not applicable: `includeIgnored` on `ProjectListEntriesInput` is unchanged. - **Reverse states.** Not applicable: reveal/reset behavior is unchanged; the preference toggle and its off state are untouched. - **Connection modes.** The boundary preserves local and remote workspace roots without interpreting them (covered by the existing host-path test); connection behavior is unchanged. - **Docs.** `docs/internals/fork-delta.md` workspace-files shape updated to name both guarded surfaces. Refs #536; closes when the after-census under `#572` no longer observes this stop. Model: muse-spark-1.3-contributor. Harness: pi. Fork-Domain: workspace-files Fork-Tier: core <!-- gh-bot:attest {"v":2,"repo":"RSI-Software/t3code-hyprws","ref":"fix/seam-536@79e01ffde5c","agents":[{"role":"host","iface":"pi","provider":"meta","model":"muse-spark-1.3-contributor","effort":"high","harness":"[email protected]","session":"36d5f9419631"}],"ts":"2026-09-06T07:48:09Z"} --> Fork-Domain: workspace-files Fork-Tier: core Co-authored-by: donjor <[email protected]>
donjor
pushed a commit
that referenced
this pull request
Sep 8, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
pushed a commit
that referenced
this pull request
Sep 8, 2026
> 🤖 pi/meta muse-spark-1.3-contributor (high) ## Problem Upstream-sync run `33806918890` reported that `d8d6f71 feat(files): reveal ignored workspace files (#73)` conflicts in the mobile `ThreadFilesRouteScreen.tsx` against `v0.0.39-nightly.20260903.1272`. PR 543 moved the route's ignored-file preference and request policy behind the fork-owned `ignoredWorkspaceFileListing.ts` boundary, and PR 601 added the `mobile-ignored-file-listing` authoring guard. The guard only named the route screen, but the adaptive inspector (`thread-file-navigator-pane.tsx`) reuses the same boundary with its own inline policy shape, so a future edit could regrow inline policy there undetected. ## Boundary chosen No behavior change. The boundary stays `apps/mobile/src/features/files/ignoredWorkspaceFileListing.ts` with its `resolveIgnoredWorkspaceFileListing` / `useIgnoredWorkspaceFileListing` adapter. Upstream files keep the narrow integration point: one import plus one call (`useIgnoredWorkspaceFileListing(cwd)` / `(props.cwd)`), retaining their environment and file-inspector gates. This change extends the guard's declared targets, matcher, and inventory wording to cover both the route screen and the inspector, so the leased `#498` rewrite can keep the upstream route screen and attach ignored-file behavior through the boundary. ## Guard Extended the adopted `mobile-ignored-file-listing` rule in `scripts/fork-scan-guards.ts`: - `AUTHORING_GUARD_TARGETS` gains the inspector path alongside the route path. - The warning prose names both surfaces. - `scripts/fork-scan-guards.test.ts` gains inspector rejection/permit cases. - `scripts/fork-scan-authoring.test.ts` retargets the request-policy fixture at the inspector. - `docs/internals/fork-delta.md` workspace-files shape names both surfaces. ## Evidence | Check | Result | | --- | --- | | `vp test run scripts/fork-scan-guards.test.ts scripts/fork-scan-authoring.test.ts scripts/fork-lesson-guidance.test.ts` | 57 passed | | `vp test run apps/mobile/src/features/files/ignoredWorkspaceFileListing.fork.test.ts apps/mobile/src/features/files/fileTree.fork.test.ts` | 5 passed | | `vp run --filter @t3tools/mobile typecheck` | passed | | `vp lint` (touched scripts) | passed, no findings | | `vp fmt --check` (touched files) | passed | | `vp run fork:delta --check` | ok: 304 fork commits tagged | | `vp run fork:scan --no-typecheck --since origin/hyprws` | no new warnings on this branch; the 41 rebase-scan gaps and 2 workflow-drift gaps are pre-existing on `origin/hyprws` and untouched by this change | | `vp run fork:delta --check` full-scan gap check | pre-existing gaps only, verified identical with the change stashed | ## Surfaces walked - **Entry points.** The ignored-file preference is reachable from the mobile General settings switch, the file-tree toolbar toggle (web), and both mobile listing surfaces. This change touches only guard scope, not behavior, so all entry points keep their existing wiring. - **Clients.** Mobile is the affected client; the boundary and both integration points are mobile-only. Web/desktop settings and listing paths are untouched. - **Providers.** Not applicable: no provider adapter is involved. - **Contracts.** Not applicable: `includeIgnored` on `ProjectListEntriesInput` is unchanged. - **Reverse states.** Not applicable: reveal/reset behavior is unchanged; the preference toggle and its off state are untouched. - **Connection modes.** The boundary preserves local and remote workspace roots without interpreting them (covered by the existing host-path test); connection behavior is unchanged. - **Docs.** `docs/internals/fork-delta.md` workspace-files shape updated to name both guarded surfaces. Refs #536; closes when the after-census under `#572` no longer observes this stop. Model: muse-spark-1.3-contributor. Harness: pi. Fork-Domain: workspace-files Fork-Tier: core <!-- gh-bot:attest {"v":2,"repo":"RSI-Software/t3code-hyprws","ref":"fix/seam-536@79e01ffde5c","agents":[{"role":"host","iface":"pi","provider":"meta","model":"muse-spark-1.3-contributor","effort":"high","harness":"[email protected]","session":"36d5f9419631"}],"ts":"2026-09-06T07:48:09Z"} --> Fork-Domain: workspace-files Fork-Tier: core Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Sep 9, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
pushed a commit
that referenced
this pull request
Sep 9, 2026
> 🤖 pi/meta muse-spark-1.3-contributor (high) ## Problem Upstream-sync run `33806918890` reported that `d8d6f71 feat(files): reveal ignored workspace files (#73)` conflicts in the mobile `ThreadFilesRouteScreen.tsx` against `v0.0.39-nightly.20260903.1272`. PR 543 moved the route's ignored-file preference and request policy behind the fork-owned `ignoredWorkspaceFileListing.ts` boundary, and PR 601 added the `mobile-ignored-file-listing` authoring guard. The guard only named the route screen, but the adaptive inspector (`thread-file-navigator-pane.tsx`) reuses the same boundary with its own inline policy shape, so a future edit could regrow inline policy there undetected. ## Boundary chosen No behavior change. The boundary stays `apps/mobile/src/features/files/ignoredWorkspaceFileListing.ts` with its `resolveIgnoredWorkspaceFileListing` / `useIgnoredWorkspaceFileListing` adapter. Upstream files keep the narrow integration point: one import plus one call (`useIgnoredWorkspaceFileListing(cwd)` / `(props.cwd)`), retaining their environment and file-inspector gates. This change extends the guard's declared targets, matcher, and inventory wording to cover both the route screen and the inspector, so the leased `#498` rewrite can keep the upstream route screen and attach ignored-file behavior through the boundary. ## Guard Extended the adopted `mobile-ignored-file-listing` rule in `scripts/fork-scan-guards.ts`: - `AUTHORING_GUARD_TARGETS` gains the inspector path alongside the route path. - The warning prose names both surfaces. - `scripts/fork-scan-guards.test.ts` gains inspector rejection/permit cases. - `scripts/fork-scan-authoring.test.ts` retargets the request-policy fixture at the inspector. - `docs/internals/fork-delta.md` workspace-files shape names both surfaces. ## Evidence | Check | Result | | --- | --- | | `vp test run scripts/fork-scan-guards.test.ts scripts/fork-scan-authoring.test.ts scripts/fork-lesson-guidance.test.ts` | 57 passed | | `vp test run apps/mobile/src/features/files/ignoredWorkspaceFileListing.fork.test.ts apps/mobile/src/features/files/fileTree.fork.test.ts` | 5 passed | | `vp run --filter @t3tools/mobile typecheck` | passed | | `vp lint` (touched scripts) | passed, no findings | | `vp fmt --check` (touched files) | passed | | `vp run fork:delta --check` | ok: 304 fork commits tagged | | `vp run fork:scan --no-typecheck --since origin/hyprws` | no new warnings on this branch; the 41 rebase-scan gaps and 2 workflow-drift gaps are pre-existing on `origin/hyprws` and untouched by this change | | `vp run fork:delta --check` full-scan gap check | pre-existing gaps only, verified identical with the change stashed | ## Surfaces walked - **Entry points.** The ignored-file preference is reachable from the mobile General settings switch, the file-tree toolbar toggle (web), and both mobile listing surfaces. This change touches only guard scope, not behavior, so all entry points keep their existing wiring. - **Clients.** Mobile is the affected client; the boundary and both integration points are mobile-only. Web/desktop settings and listing paths are untouched. - **Providers.** Not applicable: no provider adapter is involved. - **Contracts.** Not applicable: `includeIgnored` on `ProjectListEntriesInput` is unchanged. - **Reverse states.** Not applicable: reveal/reset behavior is unchanged; the preference toggle and its off state are untouched. - **Connection modes.** The boundary preserves local and remote workspace roots without interpreting them (covered by the existing host-path test); connection behavior is unchanged. - **Docs.** `docs/internals/fork-delta.md` workspace-files shape updated to name both guarded surfaces. Refs #536; closes when the after-census under `#572` no longer observes this stop. Model: muse-spark-1.3-contributor. Harness: pi. Fork-Domain: workspace-files Fork-Tier: core <!-- gh-bot:attest {"v":2,"repo":"RSI-Software/t3code-hyprws","ref":"fix/seam-536@79e01ffde5c","agents":[{"role":"host","iface":"pi","provider":"meta","model":"muse-spark-1.3-contributor","effort":"high","harness":"[email protected]","session":"36d5f9419631"}],"ts":"2026-09-06T07:48:09Z"} --> Fork-Domain: workspace-files Fork-Tier: core Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Sep 10, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
pushed a commit
that referenced
this pull request
Sep 10, 2026
> 🤖 pi/meta muse-spark-1.3-contributor (high) ## Problem Upstream-sync run `33806918890` reported that `d8d6f71 feat(files): reveal ignored workspace files (#73)` conflicts in the mobile `ThreadFilesRouteScreen.tsx` against `v0.0.39-nightly.20260903.1272`. PR 543 moved the route's ignored-file preference and request policy behind the fork-owned `ignoredWorkspaceFileListing.ts` boundary, and PR 601 added the `mobile-ignored-file-listing` authoring guard. The guard only named the route screen, but the adaptive inspector (`thread-file-navigator-pane.tsx`) reuses the same boundary with its own inline policy shape, so a future edit could regrow inline policy there undetected. ## Boundary chosen No behavior change. The boundary stays `apps/mobile/src/features/files/ignoredWorkspaceFileListing.ts` with its `resolveIgnoredWorkspaceFileListing` / `useIgnoredWorkspaceFileListing` adapter. Upstream files keep the narrow integration point: one import plus one call (`useIgnoredWorkspaceFileListing(cwd)` / `(props.cwd)`), retaining their environment and file-inspector gates. This change extends the guard's declared targets, matcher, and inventory wording to cover both the route screen and the inspector, so the leased `#498` rewrite can keep the upstream route screen and attach ignored-file behavior through the boundary. ## Guard Extended the adopted `mobile-ignored-file-listing` rule in `scripts/fork-scan-guards.ts`: - `AUTHORING_GUARD_TARGETS` gains the inspector path alongside the route path. - The warning prose names both surfaces. - `scripts/fork-scan-guards.test.ts` gains inspector rejection/permit cases. - `scripts/fork-scan-authoring.test.ts` retargets the request-policy fixture at the inspector. - `docs/internals/fork-delta.md` workspace-files shape names both surfaces. ## Evidence | Check | Result | | --- | --- | | `vp test run scripts/fork-scan-guards.test.ts scripts/fork-scan-authoring.test.ts scripts/fork-lesson-guidance.test.ts` | 57 passed | | `vp test run apps/mobile/src/features/files/ignoredWorkspaceFileListing.fork.test.ts apps/mobile/src/features/files/fileTree.fork.test.ts` | 5 passed | | `vp run --filter @t3tools/mobile typecheck` | passed | | `vp lint` (touched scripts) | passed, no findings | | `vp fmt --check` (touched files) | passed | | `vp run fork:delta --check` | ok: 304 fork commits tagged | | `vp run fork:scan --no-typecheck --since origin/hyprws` | no new warnings on this branch; the 41 rebase-scan gaps and 2 workflow-drift gaps are pre-existing on `origin/hyprws` and untouched by this change | | `vp run fork:delta --check` full-scan gap check | pre-existing gaps only, verified identical with the change stashed | ## Surfaces walked - **Entry points.** The ignored-file preference is reachable from the mobile General settings switch, the file-tree toolbar toggle (web), and both mobile listing surfaces. This change touches only guard scope, not behavior, so all entry points keep their existing wiring. - **Clients.** Mobile is the affected client; the boundary and both integration points are mobile-only. Web/desktop settings and listing paths are untouched. - **Providers.** Not applicable: no provider adapter is involved. - **Contracts.** Not applicable: `includeIgnored` on `ProjectListEntriesInput` is unchanged. - **Reverse states.** Not applicable: reveal/reset behavior is unchanged; the preference toggle and its off state are untouched. - **Connection modes.** The boundary preserves local and remote workspace roots without interpreting them (covered by the existing host-path test); connection behavior is unchanged. - **Docs.** `docs/internals/fork-delta.md` workspace-files shape updated to name both guarded surfaces. Refs #536; closes when the after-census under `#572` no longer observes this stop. Model: muse-spark-1.3-contributor. Harness: pi. Fork-Domain: workspace-files Fork-Tier: core <!-- gh-bot:attest {"v":2,"repo":"RSI-Software/t3code-hyprws","ref":"fix/seam-536@79e01ffde5c","agents":[{"role":"host","iface":"pi","provider":"meta","model":"muse-spark-1.3-contributor","effort":"high","harness":"[email protected]","session":"36d5f9419631"}],"ts":"2026-09-06T07:48:09Z"} --> Fork-Domain: workspace-files Fork-Tier: core Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Sep 13, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
pushed a commit
that referenced
this pull request
Sep 13, 2026
> 🤖 pi/meta muse-spark-1.3-contributor (high) ## Problem Upstream-sync run `33806918890` reported that `d8d6f71 feat(files): reveal ignored workspace files (#73)` conflicts in the mobile `ThreadFilesRouteScreen.tsx` against `v0.0.39-nightly.20260903.1272`. PR 543 moved the route's ignored-file preference and request policy behind the fork-owned `ignoredWorkspaceFileListing.ts` boundary, and PR 601 added the `mobile-ignored-file-listing` authoring guard. The guard only named the route screen, but the adaptive inspector (`thread-file-navigator-pane.tsx`) reuses the same boundary with its own inline policy shape, so a future edit could regrow inline policy there undetected. ## Boundary chosen No behavior change. The boundary stays `apps/mobile/src/features/files/ignoredWorkspaceFileListing.ts` with its `resolveIgnoredWorkspaceFileListing` / `useIgnoredWorkspaceFileListing` adapter. Upstream files keep the narrow integration point: one import plus one call (`useIgnoredWorkspaceFileListing(cwd)` / `(props.cwd)`), retaining their environment and file-inspector gates. This change extends the guard's declared targets, matcher, and inventory wording to cover both the route screen and the inspector, so the leased `#498` rewrite can keep the upstream route screen and attach ignored-file behavior through the boundary. ## Guard Extended the adopted `mobile-ignored-file-listing` rule in `scripts/fork-scan-guards.ts`: - `AUTHORING_GUARD_TARGETS` gains the inspector path alongside the route path. - The warning prose names both surfaces. - `scripts/fork-scan-guards.test.ts` gains inspector rejection/permit cases. - `scripts/fork-scan-authoring.test.ts` retargets the request-policy fixture at the inspector. - `docs/internals/fork-delta.md` workspace-files shape names both surfaces. ## Evidence | Check | Result | | --- | --- | | `vp test run scripts/fork-scan-guards.test.ts scripts/fork-scan-authoring.test.ts scripts/fork-lesson-guidance.test.ts` | 57 passed | | `vp test run apps/mobile/src/features/files/ignoredWorkspaceFileListing.fork.test.ts apps/mobile/src/features/files/fileTree.fork.test.ts` | 5 passed | | `vp run --filter @t3tools/mobile typecheck` | passed | | `vp lint` (touched scripts) | passed, no findings | | `vp fmt --check` (touched files) | passed | | `vp run fork:delta --check` | ok: 304 fork commits tagged | | `vp run fork:scan --no-typecheck --since origin/hyprws` | no new warnings on this branch; the 41 rebase-scan gaps and 2 workflow-drift gaps are pre-existing on `origin/hyprws` and untouched by this change | | `vp run fork:delta --check` full-scan gap check | pre-existing gaps only, verified identical with the change stashed | ## Surfaces walked - **Entry points.** The ignored-file preference is reachable from the mobile General settings switch, the file-tree toolbar toggle (web), and both mobile listing surfaces. This change touches only guard scope, not behavior, so all entry points keep their existing wiring. - **Clients.** Mobile is the affected client; the boundary and both integration points are mobile-only. Web/desktop settings and listing paths are untouched. - **Providers.** Not applicable: no provider adapter is involved. - **Contracts.** Not applicable: `includeIgnored` on `ProjectListEntriesInput` is unchanged. - **Reverse states.** Not applicable: reveal/reset behavior is unchanged; the preference toggle and its off state are untouched. - **Connection modes.** The boundary preserves local and remote workspace roots without interpreting them (covered by the existing host-path test); connection behavior is unchanged. - **Docs.** `docs/internals/fork-delta.md` workspace-files shape updated to name both guarded surfaces. Refs #536; closes when the after-census under `#572` no longer observes this stop. Model: muse-spark-1.3-contributor. Harness: pi. Fork-Domain: workspace-files Fork-Tier: core <!-- gh-bot:attest {"v":2,"repo":"RSI-Software/t3code-hyprws","ref":"fix/seam-536@79e01ffde5c","agents":[{"role":"host","iface":"pi","provider":"meta","model":"muse-spark-1.3-contributor","effort":"high","harness":"[email protected]","session":"36d5f9419631"}],"ts":"2026-09-06T07:48:09Z"} --> Fork-Domain: workspace-files Fork-Tier: core Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Sep 15, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
pushed a commit
that referenced
this pull request
Sep 15, 2026
> 🤖 pi/meta muse-spark-1.3-contributor (high) ## Problem Upstream-sync run `33806918890` reported that `d8d6f71 feat(files): reveal ignored workspace files (#73)` conflicts in the mobile `ThreadFilesRouteScreen.tsx` against `v0.0.39-nightly.20260903.1272`. PR 543 moved the route's ignored-file preference and request policy behind the fork-owned `ignoredWorkspaceFileListing.ts` boundary, and PR 601 added the `mobile-ignored-file-listing` authoring guard. The guard only named the route screen, but the adaptive inspector (`thread-file-navigator-pane.tsx`) reuses the same boundary with its own inline policy shape, so a future edit could regrow inline policy there undetected. ## Boundary chosen No behavior change. The boundary stays `apps/mobile/src/features/files/ignoredWorkspaceFileListing.ts` with its `resolveIgnoredWorkspaceFileListing` / `useIgnoredWorkspaceFileListing` adapter. Upstream files keep the narrow integration point: one import plus one call (`useIgnoredWorkspaceFileListing(cwd)` / `(props.cwd)`), retaining their environment and file-inspector gates. This change extends the guard's declared targets, matcher, and inventory wording to cover both the route screen and the inspector, so the leased `#498` rewrite can keep the upstream route screen and attach ignored-file behavior through the boundary. ## Guard Extended the adopted `mobile-ignored-file-listing` rule in `scripts/fork-scan-guards.ts`: - `AUTHORING_GUARD_TARGETS` gains the inspector path alongside the route path. - The warning prose names both surfaces. - `scripts/fork-scan-guards.test.ts` gains inspector rejection/permit cases. - `scripts/fork-scan-authoring.test.ts` retargets the request-policy fixture at the inspector. - `docs/internals/fork-delta.md` workspace-files shape names both surfaces. ## Evidence | Check | Result | | --- | --- | | `vp test run scripts/fork-scan-guards.test.ts scripts/fork-scan-authoring.test.ts scripts/fork-lesson-guidance.test.ts` | 57 passed | | `vp test run apps/mobile/src/features/files/ignoredWorkspaceFileListing.fork.test.ts apps/mobile/src/features/files/fileTree.fork.test.ts` | 5 passed | | `vp run --filter @t3tools/mobile typecheck` | passed | | `vp lint` (touched scripts) | passed, no findings | | `vp fmt --check` (touched files) | passed | | `vp run fork:delta --check` | ok: 304 fork commits tagged | | `vp run fork:scan --no-typecheck --since origin/hyprws` | no new warnings on this branch; the 41 rebase-scan gaps and 2 workflow-drift gaps are pre-existing on `origin/hyprws` and untouched by this change | | `vp run fork:delta --check` full-scan gap check | pre-existing gaps only, verified identical with the change stashed | ## Surfaces walked - **Entry points.** The ignored-file preference is reachable from the mobile General settings switch, the file-tree toolbar toggle (web), and both mobile listing surfaces. This change touches only guard scope, not behavior, so all entry points keep their existing wiring. - **Clients.** Mobile is the affected client; the boundary and both integration points are mobile-only. Web/desktop settings and listing paths are untouched. - **Providers.** Not applicable: no provider adapter is involved. - **Contracts.** Not applicable: `includeIgnored` on `ProjectListEntriesInput` is unchanged. - **Reverse states.** Not applicable: reveal/reset behavior is unchanged; the preference toggle and its off state are untouched. - **Connection modes.** The boundary preserves local and remote workspace roots without interpreting them (covered by the existing host-path test); connection behavior is unchanged. - **Docs.** `docs/internals/fork-delta.md` workspace-files shape updated to name both guarded surfaces. Refs #536; closes when the after-census under `#572` no longer observes this stop. Model: muse-spark-1.3-contributor. Harness: pi. Fork-Domain: workspace-files Fork-Tier: core <!-- gh-bot:attest {"v":2,"repo":"RSI-Software/t3code-hyprws","ref":"fix/seam-536@79e01ffde5c","agents":[{"role":"host","iface":"pi","provider":"meta","model":"muse-spark-1.3-contributor","effort":"high","harness":"[email protected]","session":"36d5f9419631"}],"ts":"2026-09-06T07:48:09Z"} --> Fork-Domain: workspace-files Fork-Tier: core Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Sep 17, 2026
* feat(files): reveal ignored workspace files Fork-Domain: workspace-files Fork-Tier: core * test(desktop): cover ignored-file setting Fork-Domain: workspace-files Fork-Tier: core --------- Co-authored-by: donjor <[email protected]> Fork-Domain: workspace-files Fork-Tier: core
donjor
pushed a commit
that referenced
this pull request
Sep 17, 2026
> 🤖 pi/meta muse-spark-1.3-contributor (high) ## Problem Upstream-sync run `33806918890` reported that `d8d6f71 feat(files): reveal ignored workspace files (#73)` conflicts in the mobile `ThreadFilesRouteScreen.tsx` against `v0.0.39-nightly.20260903.1272`. PR 543 moved the route's ignored-file preference and request policy behind the fork-owned `ignoredWorkspaceFileListing.ts` boundary, and PR 601 added the `mobile-ignored-file-listing` authoring guard. The guard only named the route screen, but the adaptive inspector (`thread-file-navigator-pane.tsx`) reuses the same boundary with its own inline policy shape, so a future edit could regrow inline policy there undetected. ## Boundary chosen No behavior change. The boundary stays `apps/mobile/src/features/files/ignoredWorkspaceFileListing.ts` with its `resolveIgnoredWorkspaceFileListing` / `useIgnoredWorkspaceFileListing` adapter. Upstream files keep the narrow integration point: one import plus one call (`useIgnoredWorkspaceFileListing(cwd)` / `(props.cwd)`), retaining their environment and file-inspector gates. This change extends the guard's declared targets, matcher, and inventory wording to cover both the route screen and the inspector, so the leased `#498` rewrite can keep the upstream route screen and attach ignored-file behavior through the boundary. ## Guard Extended the adopted `mobile-ignored-file-listing` rule in `scripts/fork-scan-guards.ts`: - `AUTHORING_GUARD_TARGETS` gains the inspector path alongside the route path. - The warning prose names both surfaces. - `scripts/fork-scan-guards.test.ts` gains inspector rejection/permit cases. - `scripts/fork-scan-authoring.test.ts` retargets the request-policy fixture at the inspector. - `docs/internals/fork-delta.md` workspace-files shape names both surfaces. ## Evidence | Check | Result | | --- | --- | | `vp test run scripts/fork-scan-guards.test.ts scripts/fork-scan-authoring.test.ts scripts/fork-lesson-guidance.test.ts` | 57 passed | | `vp test run apps/mobile/src/features/files/ignoredWorkspaceFileListing.fork.test.ts apps/mobile/src/features/files/fileTree.fork.test.ts` | 5 passed | | `vp run --filter @t3tools/mobile typecheck` | passed | | `vp lint` (touched scripts) | passed, no findings | | `vp fmt --check` (touched files) | passed | | `vp run fork:delta --check` | ok: 304 fork commits tagged | | `vp run fork:scan --no-typecheck --since origin/hyprws` | no new warnings on this branch; the 41 rebase-scan gaps and 2 workflow-drift gaps are pre-existing on `origin/hyprws` and untouched by this change | | `vp run fork:delta --check` full-scan gap check | pre-existing gaps only, verified identical with the change stashed | ## Surfaces walked - **Entry points.** The ignored-file preference is reachable from the mobile General settings switch, the file-tree toolbar toggle (web), and both mobile listing surfaces. This change touches only guard scope, not behavior, so all entry points keep their existing wiring. - **Clients.** Mobile is the affected client; the boundary and both integration points are mobile-only. Web/desktop settings and listing paths are untouched. - **Providers.** Not applicable: no provider adapter is involved. - **Contracts.** Not applicable: `includeIgnored` on `ProjectListEntriesInput` is unchanged. - **Reverse states.** Not applicable: reveal/reset behavior is unchanged; the preference toggle and its off state are untouched. - **Connection modes.** The boundary preserves local and remote workspace roots without interpreting them (covered by the existing host-path test); connection behavior is unchanged. - **Docs.** `docs/internals/fork-delta.md` workspace-files shape updated to name both guarded surfaces. Refs #536; closes when the after-census under `#572` no longer observes this stop. Model: muse-spark-1.3-contributor. Harness: pi. Fork-Domain: workspace-files Fork-Tier: core <!-- gh-bot:attest {"v":2,"repo":"RSI-Software/t3code-hyprws","ref":"fix/seam-536@79e01ffde5c","agents":[{"role":"host","iface":"pi","provider":"meta","model":"muse-spark-1.3-contributor","effort":"high","harness":"[email protected]","session":"36d5f9419631"}],"ts":"2026-09-06T07:48:09Z"} --> Fork-Domain: workspace-files Fork-Tier: core Co-authored-by: donjor <[email protected]>
This was referenced Sep 18, 2026
2 tasks done
donjor
added a commit
that referenced
this pull request
Sep 19, 2026
The post-mortem claimed the commit could not be written again; nothing proved it. Re-author its six woven files and assert the refusal, including that `footprint` is silent because its budget is #73's own file count. Fork-Domain: fork-meta Fork-Tier: bugfix Fork-Upstreamable: no
donjor
added a commit
that referenced
this pull request
Sep 19, 2026
## What Changed One test that re-authors `6ea3f9faec` in a fixture repository and asserts the scan refuses it. The six upstream-owned paths are the real ones from the census, each carrying one fork line in the shape that commit used: a preference read, a listing flag, a settings row. ## Why The post-mortem's claim is that `#73` could not be written again. Nothing tested it, so adoption rested on reading the rules rather than running them. ### What actually refuses it | Rule | Charges | Count | | --- | --- | --- | | `fork-hook-seam` | each woven file, on its own | 6 | | `upstream-test` | the two `.test.ts` paths | 2 | | `mobile-ignored-file-listing` | `ThreadFilesRouteScreen.tsx` | 1 | Nine adopted-guard failures, exit 1. The **count** is what the test asserts, not the rule names. Every rule prints its name whether it is adopted or merely advisory, so a name alone proves nothing. A first draft asserted the names and passed with `fork-hook-seam` un-adopted; the count does not. Mutation-checked: comment `"fork-hook-seam"` out of `ADOPTED_AUTHORING_GUARDS` and the line reads `failed: 3`, and the test goes red. ### `footprint` is silent `UPSTREAM_FOOTPRINT_BUDGET` is 6, measured from this commit, and the rule charges *more than* the budget. So the guard named after `#73` does not fire on `#73`. The test pins that with `assert.strictEqual(woven.length, UPSTREAM_FOOTPRINT_BUDGET)` beside the `notInclude`, so a future budget change cannot quietly turn the assertion vacuous. This is why adoption could not rest on `footprint`, and why `fork-hook-seam` had to be adopted for the shape to be unauthorable. ### The residual, rehomed `#939` is closed, so its named residual had no live home. The test is now that home. The dual-trailered lane (`Fork-Tier: bugfix` + `Fork-Upstreamable: yes`) exempts `fork-hook-seam` and nothing else. The second half of the test re-authors the same tree through that lane and asserts: - `failed: 3`, the six seam charges gone and nothing else forgiven - `mobile-ignored-file-listing` and `upstream-test` still charging, exit still 1 A woven seam does not land through the exempt lane. If that ever changes, this assertion goes red, which is the reopening trigger `#939` described in prose. ### Scope The historical range stays advisory, asserted in the same test: the trunk already carries `#73` and must keep scanning green. ## Checklist - [x] This PR is small and focused - [x] I explained what changed and why - [x] I included before/after screenshots for any UI changes - [x] I included a video for animation/interaction changes No UI surface: fork authoring tooling under `scripts/`. Verified: - `vp test run scripts/fork-scan-authoring.test.ts scripts/fork-scan.test.ts scripts/fork-scan-guards.test.ts` — 107 passed - `vp run typecheck` clean (suggestions only, all pre-existing) - `vp lint scripts/fork-scan-authoring.test.ts` — no findings - `fork-scan.ts --head HEAD --target 052c7ae --since 0d395b1 --no-typecheck`, the CI blocking gate: `ok` ## Fork trailers Closes #1099 Fork-Domain: fork-meta Fork-Tier: bugfix Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Gitignored workspace files can now be revealed on demand across desktop, web, and mobile while remaining hidden by default.
Closes #39
@donjor
Fork-Domain: workspace-files
Fork-Tier: core