fix(web): tolerate external project script ids in keybinding commands - #112
Merged
lastobelus merged 2 commits intoAug 27, 2026
Merged
Conversation
The server accepts any non-empty trimmed string as a ProjectScript id, but the client's SCRIPT_RUN_COMMAND_PATTERN only allowed lowercase slugs of up to 24 characters. An id dispatched over the API (e.g. a UUID) made commandForProjectScript throw during render, crashing every thread view and the project settings panel with no way to repair from the UI. Relax the pattern's middle segment to TrimmedNonEmptyString, matching the server-side constraint. UI-generated ids are still slugs via nextProjectScriptId, so nothing changes for normal usage; existing keybinding rules keep decoding. Fixes pingdotgg#7851 Worked on by ox-alpha via the pi coding agent harness. (cherry picked from commit 6be823d)
lastobelus
force-pushed
the
port/upstream/pr-7961-tolerate-project-script-ids
branch
from
August 27, 2026 20:46
5956bf5 to
f0434c7
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5956bf5b6c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Owner
Author
|
@codex review |
|
Codex Review: Didn't find any major issues. 🚀 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
lastobelus
deleted the
port/upstream/pr-7961-tolerate-project-script-ids
branch
August 27, 2026 21:11
lastobelus
added a commit
that referenced
this pull request
Aug 28, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Aug 28, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Aug 28, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Aug 28, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Aug 28, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Aug 29, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Aug 29, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Aug 29, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Aug 30, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Aug 31, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 1, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 1, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 1, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 1, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 1, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 1, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 1, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 1, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 2, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 2, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 2, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 2, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 2, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 2, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 3, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 3, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 3, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 3, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 3, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 5, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 5, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 5, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 5, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 5, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
added a commit
that referenced
this pull request
Sep 5, 2026
…#112) ## Summary - import the maintainer-preferred fix from pingdotgg#7961 at pinned head `6be823df41b105ddee33677f0b72aa4f5ad1c868` - accept every canonical non-empty project-script ID when constructing dynamic keybinding commands, matching the existing `ProjectScript` contract - keep UI-generated IDs as the existing lowercase slugs while allowing externally supplied and already-saved IDs - reject whitespace-padded dynamic commands instead of accepting shortcuts that cannot match normalized saved IDs ## Incident A saved htulo action used ID `build-intel-package-macos` (25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwing `Expected a string matching template literal parts` in both thread controls and Project Settings. No persisted project data was changed or migrated. ## Validation - 24 focused tests across the dynamic-command contract, project-script helpers, and project-script keybinding decoder - contracts and web typechecks - focused formatting and lint - committed-range `git diff --check` - disposable matched fixture with the exact 25-character action ID rendered in chat - locally installed recovery build opened the real htulo thread and rendered **Build Intel package (macOS)** in Project Settings ## Provenance - upstream issue: pingdotgg#7851 - upstream PR: pingdotgg#7961 - exact upstream commit preserved by `cherry-pick -x` Refs #103 --------- Co-authored-by: xuzhaorui <119386408+xuzhaorui@users.noreply.github.com>
lastobelus
pushed a commit
that referenced
this pull request
Sep 7, 2026
Carry-Group: upstream-bugfixes
Carry-Contribution: {"sourceCommit":"f7e7ab3653928828da416c37a58a47b989daa7cf","subject":"carry(upstream-bugfixes): fix(web): surface drafts in the legacy sidebar (#24)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/24"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7120"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/f44a0e2a1a67daec624e2aa3b07aab8ae96a8088"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7fc0a88ba083bce3f028664a81fc59f48b9a546f","subject":"carry(upstream-bugfixes): feat(web): filter archived threads by project (#31)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/31"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7282"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/fc3fd563304ff38da4fa23ae4c7aa5a2d2799ff3"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"6f6c0523b215b2d69a7ead8fcad6fecd4f35ef2f","subject":"carry(upstream-bugfixes): fix(web): avoid archive breadcrumb route race (#45)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/45"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7282"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/170f9427de40c815c1fd5498f1e1e3303b8e8c8b"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"4a0e6e2b6b3b63658e9c6eba32d9024ca60bdb88","subject":"carry(upstream-bugfixes): fix(codex): keep finished subagents from pinning Working (#48)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/48"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7848","https://github.com/pingdotgg/t3code/pull/7468"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/14e88be35630ea6ec22e418dfba0b5430010d337"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"8e0f88bb595c6952fc4f21d1a9ac73c7dcf12596","subject":"carry(upstream-bugfixes): fix(server): wait for launchd shutdown safely (#56)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/56"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7874"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/a559ca7edd357116c8263fbbf6c6eeda33bed531"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7ef50d5c427dfa4c9b2a9555c6fe98dda84669eb","subject":"carry(upstream-bugfixes): fix(codex): retain residual subagent liveness safeguards (#69)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/69"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7468","https://github.com/pingdotgg/t3code/pull/7848","https://github.com/pingdotgg/t3code/pull/7937"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/796a340c3ff98d812d3c2b3f3a636994882ce36d"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"49f77df6e32092d82cbddc89f8ce3f07522cf3bb","subject":"carry(upstream-bugfixes): fix(server): remove large worktrees reliably (#74)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/74"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/3902"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/cdbc2dcabd265fdce9508530517af14d4da5c1cc"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"1a20473427ed4ac9d5353132d7d4cb25957f1610","subject":"carry(upstream-bugfixes): fix(web): keep remote icon visible on hover (#82)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/82"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/8132"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/cbd2a5eb930c53c44f5424d004c54294883323bb"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"a5947c235329af7b75b6e9fd955850e958412687","subject":"carry(upstream-bugfixes): fix(tailscale): preserve occupied Serve handlers (#102)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/102"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/8338"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/bd098650bfd55014e41b4014050c5f61ed131c14"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"54936af5ad0cc6b47052ed5e047287e14e6300b2","subject":"carry(upstream-bugfixes): fix(web): tolerate external project script ids in keybinding commands (#112)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/112"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7961"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/07c165ce8391d442cbe365017c6f33001b5f8f59"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
lastobelus
pushed a commit
that referenced
this pull request
Sep 7, 2026
Carry-Group: upstream-bugfixes
Carry-Contribution: {"sourceCommit":"f7e7ab3653928828da416c37a58a47b989daa7cf","subject":"carry(upstream-bugfixes): fix(web): surface drafts in the legacy sidebar (#24)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/24"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7120"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/f44a0e2a1a67daec624e2aa3b07aab8ae96a8088"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7fc0a88ba083bce3f028664a81fc59f48b9a546f","subject":"carry(upstream-bugfixes): feat(web): filter archived threads by project (#31)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/31"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7282"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/fc3fd563304ff38da4fa23ae4c7aa5a2d2799ff3"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"6f6c0523b215b2d69a7ead8fcad6fecd4f35ef2f","subject":"carry(upstream-bugfixes): fix(web): avoid archive breadcrumb route race (#45)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/45"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7282"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/170f9427de40c815c1fd5498f1e1e3303b8e8c8b"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"4a0e6e2b6b3b63658e9c6eba32d9024ca60bdb88","subject":"carry(upstream-bugfixes): fix(codex): keep finished subagents from pinning Working (#48)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/48"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7848","https://github.com/pingdotgg/t3code/pull/7468"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/14e88be35630ea6ec22e418dfba0b5430010d337"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"8e0f88bb595c6952fc4f21d1a9ac73c7dcf12596","subject":"carry(upstream-bugfixes): fix(server): wait for launchd shutdown safely (#56)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/56"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7874"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/a559ca7edd357116c8263fbbf6c6eeda33bed531"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7ef50d5c427dfa4c9b2a9555c6fe98dda84669eb","subject":"carry(upstream-bugfixes): fix(codex): retain residual subagent liveness safeguards (#69)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/69"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7468","https://github.com/pingdotgg/t3code/pull/7848","https://github.com/pingdotgg/t3code/pull/7937"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/796a340c3ff98d812d3c2b3f3a636994882ce36d"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"49f77df6e32092d82cbddc89f8ce3f07522cf3bb","subject":"carry(upstream-bugfixes): fix(server): remove large worktrees reliably (#74)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/74"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/3902"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/cdbc2dcabd265fdce9508530517af14d4da5c1cc"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"1a20473427ed4ac9d5353132d7d4cb25957f1610","subject":"carry(upstream-bugfixes): fix(web): keep remote icon visible on hover (#82)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/82"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/8132"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/cbd2a5eb930c53c44f5424d004c54294883323bb"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"a5947c235329af7b75b6e9fd955850e958412687","subject":"carry(upstream-bugfixes): fix(tailscale): preserve occupied Serve handlers (#102)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/102"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/8338"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/bd098650bfd55014e41b4014050c5f61ed131c14"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"54936af5ad0cc6b47052ed5e047287e14e6300b2","subject":"carry(upstream-bugfixes): fix(web): tolerate external project script ids in keybinding commands (#112)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/112"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7961"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/07c165ce8391d442cbe365017c6f33001b5f8f59"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
lastobelus
pushed a commit
that referenced
this pull request
Sep 7, 2026
Carry-Group: upstream-bugfixes
Carry-Contribution: {"sourceCommit":"f7e7ab3653928828da416c37a58a47b989daa7cf","subject":"carry(upstream-bugfixes): fix(web): surface drafts in the legacy sidebar (#24)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/24"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7120"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/f44a0e2a1a67daec624e2aa3b07aab8ae96a8088"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7fc0a88ba083bce3f028664a81fc59f48b9a546f","subject":"carry(upstream-bugfixes): feat(web): filter archived threads by project (#31)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/31"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7282"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/fc3fd563304ff38da4fa23ae4c7aa5a2d2799ff3"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"6f6c0523b215b2d69a7ead8fcad6fecd4f35ef2f","subject":"carry(upstream-bugfixes): fix(web): avoid archive breadcrumb route race (#45)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/45"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7282"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/170f9427de40c815c1fd5498f1e1e3303b8e8c8b"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"4a0e6e2b6b3b63658e9c6eba32d9024ca60bdb88","subject":"carry(upstream-bugfixes): fix(codex): keep finished subagents from pinning Working (#48)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/48"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7848","https://github.com/pingdotgg/t3code/pull/7468"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/14e88be35630ea6ec22e418dfba0b5430010d337"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"8e0f88bb595c6952fc4f21d1a9ac73c7dcf12596","subject":"carry(upstream-bugfixes): fix(server): wait for launchd shutdown safely (#56)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/56"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7874"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/a559ca7edd357116c8263fbbf6c6eeda33bed531"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7ef50d5c427dfa4c9b2a9555c6fe98dda84669eb","subject":"carry(upstream-bugfixes): fix(codex): retain residual subagent liveness safeguards (#69)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/69"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7468","https://github.com/pingdotgg/t3code/pull/7848","https://github.com/pingdotgg/t3code/pull/7937"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/796a340c3ff98d812d3c2b3f3a636994882ce36d"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"49f77df6e32092d82cbddc89f8ce3f07522cf3bb","subject":"carry(upstream-bugfixes): fix(server): remove large worktrees reliably (#74)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/74"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/3902"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/cdbc2dcabd265fdce9508530517af14d4da5c1cc"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"1a20473427ed4ac9d5353132d7d4cb25957f1610","subject":"carry(upstream-bugfixes): fix(web): keep remote icon visible on hover (#82)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/82"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/8132"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/cbd2a5eb930c53c44f5424d004c54294883323bb"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"a5947c235329af7b75b6e9fd955850e958412687","subject":"carry(upstream-bugfixes): fix(tailscale): preserve occupied Serve handlers (#102)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/102"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/8338"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/bd098650bfd55014e41b4014050c5f61ed131c14"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"54936af5ad0cc6b47052ed5e047287e14e6300b2","subject":"carry(upstream-bugfixes): fix(web): tolerate external project script ids in keybinding commands (#112)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/112"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7961"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/07c165ce8391d442cbe365017c6f33001b5f8f59"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
lastobelus
pushed a commit
that referenced
this pull request
Sep 7, 2026
Carry-Group: upstream-bugfixes
Carry-Contribution: {"sourceCommit":"f7e7ab3653928828da416c37a58a47b989daa7cf","subject":"carry(upstream-bugfixes): fix(web): surface drafts in the legacy sidebar (#24)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/24"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7120"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/f44a0e2a1a67daec624e2aa3b07aab8ae96a8088"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7fc0a88ba083bce3f028664a81fc59f48b9a546f","subject":"carry(upstream-bugfixes): feat(web): filter archived threads by project (#31)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/31"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7282"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/fc3fd563304ff38da4fa23ae4c7aa5a2d2799ff3"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"6f6c0523b215b2d69a7ead8fcad6fecd4f35ef2f","subject":"carry(upstream-bugfixes): fix(web): avoid archive breadcrumb route race (#45)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/45"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7282"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/170f9427de40c815c1fd5498f1e1e3303b8e8c8b"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"4a0e6e2b6b3b63658e9c6eba32d9024ca60bdb88","subject":"carry(upstream-bugfixes): fix(codex): keep finished subagents from pinning Working (#48)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/48"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7848","https://github.com/pingdotgg/t3code/pull/7468"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/14e88be35630ea6ec22e418dfba0b5430010d337"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"8e0f88bb595c6952fc4f21d1a9ac73c7dcf12596","subject":"carry(upstream-bugfixes): fix(server): wait for launchd shutdown safely (#56)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/56"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7874"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/a559ca7edd357116c8263fbbf6c6eeda33bed531"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7ef50d5c427dfa4c9b2a9555c6fe98dda84669eb","subject":"carry(upstream-bugfixes): fix(codex): retain residual subagent liveness safeguards (#69)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/69"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7468","https://github.com/pingdotgg/t3code/pull/7848","https://github.com/pingdotgg/t3code/pull/7937"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/796a340c3ff98d812d3c2b3f3a636994882ce36d"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"49f77df6e32092d82cbddc89f8ce3f07522cf3bb","subject":"carry(upstream-bugfixes): fix(server): remove large worktrees reliably (#74)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/74"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/3902"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/cdbc2dcabd265fdce9508530517af14d4da5c1cc"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"1a20473427ed4ac9d5353132d7d4cb25957f1610","subject":"carry(upstream-bugfixes): fix(web): keep remote icon visible on hover (#82)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/82"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/8132"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/cbd2a5eb930c53c44f5424d004c54294883323bb"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"a5947c235329af7b75b6e9fd955850e958412687","subject":"carry(upstream-bugfixes): fix(tailscale): preserve occupied Serve handlers (#102)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/102"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/8338"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/bd098650bfd55014e41b4014050c5f61ed131c14"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"54936af5ad0cc6b47052ed5e047287e14e6300b2","subject":"carry(upstream-bugfixes): fix(web): tolerate external project script ids in keybinding commands (#112)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/112"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7961"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/07c165ce8391d442cbe365017c6f33001b5f8f59"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
lastobelus
pushed a commit
that referenced
this pull request
Sep 7, 2026
Carry-Group: upstream-bugfixes
Carry-Contribution: {"sourceCommit":"f7e7ab3653928828da416c37a58a47b989daa7cf","subject":"carry(upstream-bugfixes): fix(web): surface drafts in the legacy sidebar (#24)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/24"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7120"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/f44a0e2a1a67daec624e2aa3b07aab8ae96a8088"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7fc0a88ba083bce3f028664a81fc59f48b9a546f","subject":"carry(upstream-bugfixes): feat(web): filter archived threads by project (#31)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/31"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7282"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/fc3fd563304ff38da4fa23ae4c7aa5a2d2799ff3"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"6f6c0523b215b2d69a7ead8fcad6fecd4f35ef2f","subject":"carry(upstream-bugfixes): fix(web): avoid archive breadcrumb route race (#45)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/45"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7282"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/170f9427de40c815c1fd5498f1e1e3303b8e8c8b"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"4a0e6e2b6b3b63658e9c6eba32d9024ca60bdb88","subject":"carry(upstream-bugfixes): fix(codex): keep finished subagents from pinning Working (#48)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/48"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7848","https://github.com/pingdotgg/t3code/pull/7468"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/14e88be35630ea6ec22e418dfba0b5430010d337"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"8e0f88bb595c6952fc4f21d1a9ac73c7dcf12596","subject":"carry(upstream-bugfixes): fix(server): wait for launchd shutdown safely (#56)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/56"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7874"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/a559ca7edd357116c8263fbbf6c6eeda33bed531"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7ef50d5c427dfa4c9b2a9555c6fe98dda84669eb","subject":"carry(upstream-bugfixes): fix(codex): retain residual subagent liveness safeguards (#69)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/69"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7468","https://github.com/pingdotgg/t3code/pull/7848","https://github.com/pingdotgg/t3code/pull/7937"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/796a340c3ff98d812d3c2b3f3a636994882ce36d"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"49f77df6e32092d82cbddc89f8ce3f07522cf3bb","subject":"carry(upstream-bugfixes): fix(server): remove large worktrees reliably (#74)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/74"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/3902"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/cdbc2dcabd265fdce9508530517af14d4da5c1cc"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"1a20473427ed4ac9d5353132d7d4cb25957f1610","subject":"carry(upstream-bugfixes): fix(web): keep remote icon visible on hover (#82)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/82"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/8132"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/cbd2a5eb930c53c44f5424d004c54294883323bb"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"a5947c235329af7b75b6e9fd955850e958412687","subject":"carry(upstream-bugfixes): fix(tailscale): preserve occupied Serve handlers (#102)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/102"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/8338"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/bd098650bfd55014e41b4014050c5f61ed131c14"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"54936af5ad0cc6b47052ed5e047287e14e6300b2","subject":"carry(upstream-bugfixes): fix(web): tolerate external project script ids in keybinding commands (#112)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/112"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7961"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/07c165ce8391d442cbe365017c6f33001b5f8f59"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7d57d8bf7e17f7d59208ce29a2f66b3acbb42693","subject":"test(web): align script shortcut fixtures with external IDs","group":"upstream-bugfixes","metadata":{"Carry-Fix":[],"Carry-Upstream":[],"Carry-Observation":[],"Carry-Evidence":[],"Carry-Applies-To":[],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"c2d8a221ba9a04f0a0db9df82079bc106ec9a414","subject":"fix(server): align script ID diagnostics and fixtures","group":"upstream-bugfixes","metadata":{"Carry-Fix":[],"Carry-Upstream":[],"Carry-Observation":[],"Carry-Evidence":[],"Carry-Applies-To":[],"Carry-Supersedes":[]}}
lastobelus
pushed a commit
that referenced
this pull request
Sep 8, 2026
Carry-Group: upstream-bugfixes
Carry-Contribution: {"sourceCommit":"f7e7ab3653928828da416c37a58a47b989daa7cf","subject":"carry(upstream-bugfixes): fix(web): surface drafts in the legacy sidebar (#24)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/24"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7120"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/f44a0e2a1a67daec624e2aa3b07aab8ae96a8088"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7fc0a88ba083bce3f028664a81fc59f48b9a546f","subject":"carry(upstream-bugfixes): feat(web): filter archived threads by project (#31)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/31"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7282"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/fc3fd563304ff38da4fa23ae4c7aa5a2d2799ff3"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"6f6c0523b215b2d69a7ead8fcad6fecd4f35ef2f","subject":"carry(upstream-bugfixes): fix(web): avoid archive breadcrumb route race (#45)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/45"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7282"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/170f9427de40c815c1fd5498f1e1e3303b8e8c8b"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"4a0e6e2b6b3b63658e9c6eba32d9024ca60bdb88","subject":"carry(upstream-bugfixes): fix(codex): keep finished subagents from pinning Working (#48)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/48"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7848","https://github.com/pingdotgg/t3code/pull/7468"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/14e88be35630ea6ec22e418dfba0b5430010d337"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"8e0f88bb595c6952fc4f21d1a9ac73c7dcf12596","subject":"carry(upstream-bugfixes): fix(server): wait for launchd shutdown safely (#56)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/56"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7874"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/a559ca7edd357116c8263fbbf6c6eeda33bed531"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7ef50d5c427dfa4c9b2a9555c6fe98dda84669eb","subject":"carry(upstream-bugfixes): fix(codex): retain residual subagent liveness safeguards (#69)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/69"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7468","https://github.com/pingdotgg/t3code/pull/7848","https://github.com/pingdotgg/t3code/pull/7937"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/796a340c3ff98d812d3c2b3f3a636994882ce36d"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"49f77df6e32092d82cbddc89f8ce3f07522cf3bb","subject":"carry(upstream-bugfixes): fix(server): remove large worktrees reliably (#74)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/74"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/3902"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/cdbc2dcabd265fdce9508530517af14d4da5c1cc"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"1a20473427ed4ac9d5353132d7d4cb25957f1610","subject":"carry(upstream-bugfixes): fix(web): keep remote icon visible on hover (#82)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/82"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/8132"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/cbd2a5eb930c53c44f5424d004c54294883323bb"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"a5947c235329af7b75b6e9fd955850e958412687","subject":"carry(upstream-bugfixes): fix(tailscale): preserve occupied Serve handlers (#102)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/102"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/8338"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/bd098650bfd55014e41b4014050c5f61ed131c14"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"54936af5ad0cc6b47052ed5e047287e14e6300b2","subject":"carry(upstream-bugfixes): fix(web): tolerate external project script ids in keybinding commands (#112)","group":"upstream-bugfixes","metadata":{"Carry-Fix":["https://github.com/lastobelus/lastCode/pull/112"],"Carry-Upstream":["https://github.com/pingdotgg/t3code/pull/7961"],"Carry-Observation":["Existing manifest records upstream pull-request provenance."],"Carry-Evidence":["https://github.com/lastobelus/lastCode/commit/07c165ce8391d442cbe365017c6f33001b5f8f59"],"Carry-Applies-To":["upstream 8d3c56b (v0.0.39-nightly.20260905.1289); frozen source 4156900"],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"7d57d8bf7e17f7d59208ce29a2f66b3acbb42693","subject":"test(web): align script shortcut fixtures with external IDs","group":"upstream-bugfixes","metadata":{"Carry-Fix":[],"Carry-Upstream":[],"Carry-Observation":[],"Carry-Evidence":[],"Carry-Applies-To":[],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"c2d8a221ba9a04f0a0db9df82079bc106ec9a414","subject":"fix(server): align script ID diagnostics and fixtures","group":"upstream-bugfixes","metadata":{"Carry-Fix":[],"Carry-Upstream":[],"Carry-Observation":[],"Carry-Evidence":[],"Carry-Applies-To":[],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"dd2537bad43114417769bb3d1bbcd6fd0efa8d9f","subject":"test(lastcode): align script ID expectations with external actions","group":"upstream-bugfixes","metadata":{"Carry-Fix":[],"Carry-Upstream":[],"Carry-Observation":["LastCode accepts nonempty trimmed external script IDs; upstream slug-only shortcut expectations do not apply."],"Carry-Evidence":[],"Carry-Applies-To":[],"Carry-Supersedes":[]}}
Carry-Contribution: {"sourceCommit":"27e27fa30d13a3f92fdaecccd5abb79944ce3d1e","subject":"test(lastcode): align server script ID expectations","group":"upstream-bugfixes","metadata":{"Carry-Fix":[],"Carry-Upstream":[],"Carry-Observation":["External script IDs are nonempty and trimmed; retain server rejection coverage for empty and padded IDs."],"Carry-Evidence":[],"Carry-Applies-To":[],"Carry-Supersedes":[]}}
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.
Summary
6be823df41b105ddee33677f0b72aa4f5ad1c868ProjectScriptcontractIncident
A saved action in a LastCode server environment used ID
build-intel-package-macos(25 characters). The renderer mapped that valid project script through a 24-character template-literal schema during render, throwingExpected a string matching template literal partsin both thread controls and Project Settings.No persisted project data was changed or migrated.
Validation
git diff --checkProvenance
cherry-pick -xRefs #103