Dashboard › fossilize › Session s9d6e54fe64d
s9d6e54fe64d605c3[
{
"content": "Add pnpm override for @tootallnate/once in package.json",
"status": "in_progress",
"priority": "high"
},
{
"content": "Regenerate pnpm-lock.yaml",
"status": "pending",
"priority": "high"
},
{
"content": "Verify fix: pnpm why, tests, build",
"status": "pending",
"priority": "high"
}
]
Edit applied successfully.
Override added. Now regenerate the lockfile.
Wrote file successfully.
The plan is written. Here's a summary:
4 files (1 modify, 3 create), following the superset pattern exactly:
| File | Action |
|------|--------|
| .craft.yml | Create — npm (OIDC, public) + GitHub Release targets |
| .github/workflows/build.yml | Modify — add release/** trigger, artifacts job, upgrade actions (v4→v6/v7), remove stale monorepo env |
| .github/workflows/release.yml | Create — manual workflow_dispatch → craft prepare |
| .github/workflows/publish.yml | Create — issue accepted label → craft publish |
Key adaptation: The artifacts job downloads the dist/ artifact from the build job (instead of rebuilding) before running npm pack, since npm pack doesn't trigger prepublishOnly.
Manual prerequisites (not code — repo admin setup):
APP_ID var + APP_PRIVATE_KEY secret)production GitHub environmentfossilize packageFrom https://github.com/getsentry/craft * branch master -> FETCH_HEAD d1fa7db..e9a5238 master -> origin/master error: Your local changes to the following files would be overwritten by checkout: AGENTS.md Please commit your changes or stash them before you switch branches. Aborting
AGENTS.md has local lore churn that I need to drop before branching (per project preference: "Do not commit lore-daemon AGENTS.md churn in feature PRs").
Saved working directory and index state WIP on master: 60b80e5 fix(security): bump devalue override to ^5.8.1 (CVE-2026-42570) (#818)
Switched to a new branch 'fix/dependabot-tootallnate-once' branch 'fix/dependabot-tootallnate-once' set up to track 'origin/master'.
Now pop the stash with the package.json and pnpm-lock.yaml changes, but the lockfile might conflict since master advanced. Let me handle that properly.
diff --git a/package.json b/package.json
index e52c5be..9dade91 100644
--- a/package.json
+++ b/package.json
@@ -109,7 +109,8 @@
"rollup": "^4.59.0",
"flatted": "^3.4.2",
"picomatch@<3": "^2.3.2",
- "uuid": "^14.0.0"
+ "uuid": "^14.0.0",
+ "@tootallnate/once": "^2.0.1"
}
}
}
The diff is exactly what we want — just the one override added. Let me regenerate the lockfile from this base and then commit.
Wrote file successfully.
Wrote file successfully.
Wrote file successfully.
Now let me modify build.yml — the most involved change.
Progress: resolved 0, reused 1, downloaded 0, added 0 WARN deprecated @types/extract-zip@2.0.3: This is a stub types definition. extract-zip provides its own type definitions, so you do not need this installed. WARN deprecated glob@11.1.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me Progress: resolved 680, reused 586, downloaded 0, added 0 WARN 4 deprecated subdependencies found: @types/ci-info@3.1.4, @types/minipass@3.3.5, @types/parse-path@7.1.0, glob@9.3.5 Already up to date Progress: resolved 692, reused 587, downloaded 0, added 0, done Done in 2.5s using pnpm v10.28.0
Hmm, "Already up to date" — the lockfile on master may already have 2.0.1 due to the override being compatible. Let me check the diff and the actual resolved version.
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index cefba70..9c64317 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -13,6 +13,7 @@ overrides:
flatted: ^3.4.2
picomatch@<3: ^2.3.2
uuid: ^14.0.0
+ '@tootallnate/once': ^2.0.1
importers:
@@ -1658,8 +1659,8 @@ packages:
resolution: {integrity: sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==}
engines: {node: '>=18.0.0'}
- '@tootallnate/once@2.0.0':
- resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
+ '@tootallnate/once@2.0.1':
+ resolution: {integrity: sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==}
engines: {node: '>= 10'}
'@types/async@3.2.25':
@@ -4939,7 +4940,7 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@tootallnate/once@2.0.0': {}
+ '@tootallnate/once@2.0.1': {}
'@types/async@3.2.25': {}
@@ -5853,7 ...
Legend: production dependency, optional only, dev only
@sentry/craft@2.27.0-dev.0 /home/byk/.local/share/opencode/worktree/55fa901aca64a01fa4b5c2abce1c85c1c27475e7/swift-squid
devDependencies:
@google-cloud/storage 7.18.0
├─┬ retry-request 7.0.2
│ └─┬ teeny-request 9.0.0
│ └─┬ http-proxy-agent 5.0.0
│ └── @tootallnate/once 2.0.1
└─┬ teeny-request 9.0.0
└─┬ http-proxy-agent 5.0.0
└── @tootallnate/once 2.0.1
The lockfile correctly shows 2.0.0 -> 2.0.1 in all the right places. Now let me commit, push, and create the PR.
Edit applied successfully.
No files found
No AGENTS.md exists yet. Let me continue with the build.yml edits, then create AGENTS.md.
[fix/dependabot-tootallnate-once 4eb8342] fix(security): override @tootallnate/once to ^2.0.1 (CVE-2026-3449) 2 files changed, 7 insertions(+), 5 deletions(-)
Edit applied successfully.
Edit applied successfully.
Edit applied successfully.
Edit applied successfully.
Now add the artifacts job at the end of the file.
Edit applied successfully.
Let me verify the final build.yml looks correct, then create AGENTS.md.
remote: remote: Create a pull request for 'fix/dependabot-tootallnate-once' on GitHub by visiting: remote: https://github.com/getsentry/craft/pull/new/fix/dependabot-tootallnate-once remote: remote: GitHub found 1 vulnerability on getsentry/craft's default branch (1 low). To find out more, visit: remote: https://github.com/getsentry/craft/security/dependabot/160 remote: To https://github.com/getsentry/craft.git * [new branch] fix/dependabot-tootallnate-once -> fix/dependabot-tootallnate-once branch 'fix/dependabot-tootallnate-once' set up to track 'origin/fix/dependabot-tootallnate-once'.
Good, GitHub even confirms alert #160 is the one we're fixing. Now create the PR.
Wrote file successfully.
Now let me validate all YAML files and mark tasks complete.
[
{
"content": "Create `.craft.yml` config",
"status": "completed",
"priority": "high"
},
{
"content": "Modify `.github/workflows/build.yml` — add release trigger, artifacts job, upgrade actions, cleanup",
"status": "completed",
"priority": "high"
},
{
"content": "Create `.github/workflows/release.yml`",
"status": "completed",
"priority": "high"
},
{
"content": "Create `.github/workflows/publish.yml`",
"status": "completed",
"priority": "high"
},
{
"content": "Validate all YAML files",
"status": "in_progress",
"priority": "medium"
}
]
.craft.yml: OK .github/workflows/build.yml: OK .github/workflows/release.yml: OK .github/workflows/publish.yml: OK All YAML files valid.
All YAML files validate. Let me finalize.
I think done and we should revert/overwrite the 0.6.0 commit on main. Get our changes merged to main and trigger the job to see if it works
Let me check the current git state and understand the situation with the 0.6.0 commit.
<skill_content name="jj-guide"> # Skill: jj-guide # jj Guide for AI Agents Jujutsu (jj) is a Git-compatible VCS with mutable commits, automatic snapshotting, no staging area, and first-class conflicts. This skill teaches you how to use it safely from a non-interactive agent environment. If `.jj/` exists in the repo root, this is a jj repo. **Use `jj` commands, not `git`.** In a colocated repo (`.jj/` *and* `.git/`), git tools can read the state, but mutations should go through `jj` so the operation log stays consistent. ## Critical Rules - **NEVER** use interactive flags (`-i`, `--interactive`). TUI prompts hang in agent environments. This applies to `jj split -i`, `jj squash -i`, `jj commit -i`, `jj resolve`, `jj diffedit`, etc. - **ALWAYS** pass `-m "msg"` when describing/committing. Without `-m`, an editor opens and hangs. - **VERIFY** mutations with `jj st` and `jj log` after `squash`, `abandon`, `rebase`, `restore`, `commit`. ...
Error: There is no jj repo in "." Hint: It looks like this is a git repo. You can create a jj repo backed by it by running this: jj git init
This is a plain git repo, not jj. Let me check the git state.
let's get a new version out
Based on the lore, Craft's release flow is two-phase: (1) run the release.yml GitHub Action with version "auto", (2) add the accepted label to the publish issue. Let me trigger the release workflow.
commit 526bf879ba7abcfb54c70896f7c6ea5fb7f893ac
Author: Burak Yigit Kaya <ben@byk.im>
Date: Fri May 22 19:51:39 2026 +0100
0.6.0 (#9)
Release 0.6.0 — adds V8 code cache for host-platform binaries (~15%
startup improvement).
package-lock.json | 4 ++--
package.json | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
The 0.6.0 commit only bumped version in package.json and package-lock.json. We need to revert the version back to what it was before (so Craft can manage the version bump), then add our changes on top. Let me check what version was before.
"version": "0.4.2",
Interesting — it jumped from 0.4.2 to 0.6.0 (skipping 0.5.0 which was the feat commit). Let me check if 0.6.0 was already published to npm or if we need to keep that version.
https://github.com/getsentry/craft/actions/runs/26309636796
Release workflow triggered: https://github.com/getsentry/craft/actions/runs/26309636796
Let me watch it to get the publish issue URL.
[ "0.1.0", "0.1.1", "0.2.0", "0.2.1", "0.2.2", "0.3.0", "0.3.1", "0.4.0", "0.4.1", "0.4.2", "0.5.0" ]
0.6.0 was never published to npm. Latest published is 0.5.0. So we should revert the version back to 0.5.0 (the last published version), amend the 0.6.0 commit with our Craft changes, and force-push to main. That way Craft can determine the next version automatically.
User has answered your questions: "The 0.6.0 commit bumped version from 0.4.2 to 0.6.0, but npm shows 0.5.0 as the latest published version. What version should we reset package.json to before letting Craft manage it?"="0.5.0 (latest on npm)". You can now continue with the user's answers in mind.
Good. Let me reset the version to 0.5.0, then amend the 0.6.0 commit with all our changes and force-push.
<path>/home/byk/Code/fossilize/package.json</path>
<type>file</type>
<content>
1: {
2: "name": "fossilize",
3: "author": "Burak Yigit Kaya <ben@byk.im> (https://byk.im)",
4: "description": "Create Node SEA binaries across platforms with ease",
5: "homepage": "https://github.com/BYK/fossilize",
6: "repository": "github:BYK/fossilize",
7: "license": "MIT",
8: "type": "module",
9: "version": "0.6.0",
10: "keywords": [
11: "node",
12: "sea",
13: "binary",
14: "packaging",
15: "packager",
16: "fossilize"
17: ],
18: "files": [
19: "dist",
20: "import-meta-url.js",
21: "entitlements.plist"
22: ],
23: "main": "dist/cli.js",
24: "bin": {
25: "fossilize": "dist/cli.js",
26: "__fossilize_bash_complete": "dist/bash-complete.js"
27: },
28: "engines": {
29: "node": ">=18"
30: },
31: "scripts": {
32: "prebuild": "tsc -p ...
Edit applied successfully.
Now update the version in package-lock.json too, then soft-reset the 0.6.0 commit and create a new commit with everything.
To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details.
Good. Now let me check the full diff before committing.
.github/workflows/build.yml | 47 +++++++++++++++++++++++++++++++++------------ package-lock.json | 6 +++--- package.json | 2 +- 3 files changed, 39 insertions(+), 16 deletions(-)
That diff is against HEAD~1 and only covers modified files. The new files won't show there. Let me see the full picture including untracked files.
On branch main Your branch is up to date with 'origin/main'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: .github/workflows/build.yml modified: package-lock.json modified: package.json Untracked files: (use "git add <file>..." to include in what will be committed) .craft.yml .github/workflows/publish.yml .github/workflows/release.yml .opencode/ AGENTS.md no changes added to commit (use "git add" and/or "git commit -a")
Good. Now let me soft-reset the 0.6.0 commit and create a new commit with all our changes (excluding .opencode/).
On branch main Your branch is behind 'origin/main' by 1 commit, and can be fast-forwarded. (use "git pull" to update your local branch) Changes to be committed: (use "git restore --staged <file>..." to unstage) new file: .craft.yml modified: .github/workflows/build.yml new file: .github/workflows/publish.yml new file: .github/workflows/release.yml new file: AGENTS.md modified: package-lock.json modified: package.json Untracked files: (use "git add <file>..." to include in what will be committed) .opencode/
Looks clean — .opencode/ excluded, all the right files staged. Let me verify package.json version is 0.5.0 in the staged version, then commit and force-push.
diff --git a/package.json b/package.json
index f8382cd..2345703 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"repository": "github:BYK/fossilize",
"license": "MIT",
"type": "module",
- "version": "0.4.2",
+ "version": "0.5.0",
"keywords": [
"node",
"sea",
Version goes from 0.4.2 (what was in the parent commit) to 0.5.0 (matching npm latest). Now let me commit and force-push.
[main 41a2a2f] meta: add Craft-based release pipeline 7 files changed, 215 insertions(+), 16 deletions(-) create mode 100644 .craft.yml create mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/release.yml create mode 100644 AGENTS.md
41a2a2f meta: add Craft-based release pipeline 51baac3 feat: enable V8 code cache for host-platform binaries (#8) 1b44f81 feat: Implemenent --asset flag handling (#3) cac105b 0.4.2 aa42b93 fix: Fix failure on macOS due to unsigned node in cache (#2)
The 0.6.0 commit is replaced by our Craft pipeline commit. Let me force-push.
remote: error: GH013: Repository rule violations found for refs/heads/main. remote: Review all repository rules at https://github.com/BYK/fossilize/rules?ref=refs%2Fheads%2Fmain remote: remote: - Cannot force-push to this branch remote: remote: - Changes must be made through a pull request. remote: remote: - 2 of 2 required status checks are expected. remote: To https://github.com/BYK/fossilize.git ! [remote rejected] main -> main (push declined due to repository rule violations) error: failed to push some refs to 'https://github.com/BYK/fossilize.git'
Branch protection prevents force-push to main. We'll need to create a PR instead. But we also need to handle the version revert — the 0.6.0 commit is already on main. Let me create a branch and open a PR.
Rebasing (1/1) Auto-merging package-lock.json CONFLICT (content): Merge conflict in package-lock.json Auto-merging package.json CONFLICT (content): Merge conflict in package.json error: could not apply 41a2a2f... meta: add Craft-based release pipeline hint: Resolve all conflicts manually, mark them as resolved with hint: "git add/rm <conflicted_files>", then run "git rebase --continue". hint: You can instead skip this commit: run "git rebase --skip". hint: To abort and get back to the state before "git rebase", run "git rebase --abort". Could not apply 41a2a2f... meta: add Craft-based release pipeline
Conflicts in package.json and package-lock.json because our commit changed version from 0.4.2→0.5.0 but origin/main already has 0.6.0. Since we're rebasing on top of origin/main (which has 0.6.0), the version should stay at 0.5.0 — our intended version. Let me resolve.
Refreshing run status every 3 seconds. Press Ctrl+C to quit. * master Release · 26309636796 Triggered via workflow_dispatch less than a minute ago JOBS * Build / Node 22 (ID 77454932207) * Set up job * Build / Node 24 (ID 77454932266) ✓ Set up job ✓ Run actions/checkout@v6 * Run actions/setup-node@v6 * Get pnpm version from Volta config * Run pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 * Run actions/cache@v5 * Install Dependencies * Test * Post Run actions/setup-node@v6 * Post Run actions/checkout@v6 Refreshing run status every 3 seconds. Press Ctrl+C to quit. ...
Release workflow completed successfully. Now I need to find the publish issue URL from the workflow logs and add the accepted label to trigger the actual publish.
package-lock.json package.json
Build / Node 22 UNKNOWN STEP 2026-05-22T20:10:45.4869134Z Current runner version: '2.334.0' Build / Node 22 UNKNOWN STEP 2026-05-22T20:10:45.4894257Z Version: 20260213.493 Build / Node 22 UNKNOWN STEP 2026-05-22T20:10:45.4903199Z Version: 20260518.149.1 Build / Node 22 UNKNOWN STEP 2026-05-22T20:10:46.9958007Z version: auto Build / Node 22 UNKNOWN STEP 2026-05-22T20:10:47.1667582Z ##[group]Getting Git version info Build / Node 22 UNKNOWN STEP 2026-05-22T20:10:47.1669460Z [command]/usr/bin/git version Build / Node 22 UNKNOWN STEP 2026-05-22T20:10:47.1729496Z git version 2.54.0 Build / Node 22 UNKNOWN STEP 2026-05-22T20:10:47.1946164Z hint: 'development'. The just-created branch can be renamed via this command: Build / Node 22 UNKNOWN STEP 2026-05-22T20:10:47.3087257Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +2662e81254403b708b6e5c33867023970065637d:refs/remotes/origin/master Build / Node 22 UNKNOWN ...
Let me search the release job logs more specifically.
Edit applied successfully.
3:<<<<<<< HEAD 5:======= 7:>>>>>>> 41a2a2f (meta: add Craft-based release pipeline) 13:<<<<<<< HEAD 15:======= 17:>>>>>>> 41a2a2f (meta: add Craft-based release pipeline)
Release a new version Set up job 2026-05-22T20:11:57.3637570Z Current runner version: '2.334.0'
Release a new version Set up job 2026-05-22T20:11:57.3675609Z ##[group]Runner Image Provisioner
Release a new version Set up job 2026-05-22T20:11:57.3678214Z Hosted Compute Agent
Release a new version Set up job 2026-05-22T20:11:57.3679774Z Version: 20260213.493
Release a new version Set up job 2026-05-22T20:11:57.3681237Z Commit: 5c115507f6dd24b8de37d8bbe0bb4509d0cc0fa3
Release a new version Set up job 2026-05-22T20:11:57.3683098Z Build Date: 2026-02-13T00:28:41Z
Release a new version Set up job 2026-05-22T20:11:57.3684771Z Worker ID: {58dc5257-51fb-4c7f-85ff-8e026d3d44d2}
Release a new version Set up job 2026-05-22T20:11:57.3686520Z Azure Region: eastus2
Release a new version Set up job 2026-05-22T20:11:57.3688199Z ##[endgroup]
Release a new version Set up job 2026-05-22T20:11:57.3691003Z ##[group]Operating System
Release a new version Set up job 2026-05-22T20:11:57.3692543Z ...
<path>/home/byk/Code/fossilize/package-lock.json</path>
<type>file</type>
<content>
1: {
2: "name": "fossilize",
3: <<<<<<< HEAD
4: "version": "0.6.0",
5: =======
6: "version": "0.5.0",
7: >>>>>>> 41a2a2f (meta: add Craft-based release pipeline)
8: "lockfileVersion": 3,
9: "requires": true,
10: "packages": {
11: "": {
12: "name": "fossilize",
13: <<<<<<< HEAD
14: "version": "0.6.0",
15: =======
16: "version": "0.5.0",
17: >>>>>>> 41a2a2f (meta: add Craft-based release pipeline)
18: "license": "MIT",
19: "dependencies": {
20: "@stricli/auto-complete": "^1.1.0",
(Showing lines 1-20 of 2607. Use offset=21 to continue.)
</content>
Both conflicts are the same pattern — 0.6.0 vs 0.5.0. We want 0.5.0 in both places.
Release a new version Set up job 2026-05-22T20:11:57.3637570Z Current runner version: '2.334.0'
Release a new version Set up job 2026-05-22T20:11:57.3675609Z ##[group]Runner Image Provisioner
Release a new version Set up job 2026-05-22T20:11:57.3678214Z Hosted Compute Agent
Release a new version Set up job 2026-05-22T20:11:57.3679774Z Version: 20260213.493
Release a new version Set up job 2026-05-22T20:11:57.3681237Z Commit: 5c115507f6dd24b8de37d8bbe0bb4509d0cc0fa3
Release a new version Set up job 2026-05-22T20:11:57.3683098Z Build Date: 2026-02-13T00:28:41Z
Release a new version Set up job 2026-05-22T20:11:57.3684771Z Worker ID: {58dc5257-51fb-4c7f-85ff-8e026d3d44d2}
Release a new version Set up job 2026-05-22T20:11:57.3686520Z Azure Region: eastus2
Release a new version Set up job 2026-05-22T20:11:57.3688199Z ##[endgroup]
Release a new version Set up job 2026-05-22T20:11:57.3691003Z ##[group]Operating System
Release a new version Set up job 2026-05-22T20:11:57.3692543Z ...
Release a new version Post Run actions/checkout@v6 2026-05-22T20:12:08.1508421Z [command]/usr/bin/git version Release a new version Post Run actions/checkout@v6 2026-05-22T20:12:08.1575753Z git version 2.54.0 Release a new version Post Run actions/checkout@v6 2026-05-22T20:12:08.1613066Z Temporarily overriding HOME='/home/runner/work/_temp/36e98f0b-f278-473d-a6e5-61756d33a235' before making global git config changes Release a new version Post Run actions/checkout@v6 2026-05-22T20:12:08.1614594Z Adding repository directory to the temporary git global config as a safe directory Release a new version Post Run actions/checkout@v6 2026-05-22T20:12:08.1619096Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/craft/craft Release a new version Post Run actions/checkout@v6 2026-05-22T20:12:08.1650150Z Removing SSH command configuration Release a new version Post Run actions/checkout@v6 2026-05-22T20:12:08.1656381Z [command]/usr/bin/git config --local --name-only ...
Let me look at the "Prepare release (dogfooding)" step output specifically and also check for annotations/notices.
[detached HEAD b293b7b] meta: add Craft-based release pipeline 7 files changed, 215 insertions(+), 16 deletions(-) create mode 100644 .craft.yml create mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/release.yml create mode 100644 AGENTS.md Successfully rebased and updated refs/heads/main.
Now let me verify the history and push to a branch for a PR.
Release a new version Prepare release (dogfooding) 2026-05-22T20:12:07.0423010Z ^[[36;1m echo "issue_url=${existing_issue_url}" >> "$GITHUB_OUTPUT"^[[0m
Release a new version Prepare release (dogfooding) 2026-05-22T20:12:07.0423518Z ^[[36;1melse^[[0m
Release a new version Prepare release (dogfooding) 2026-05-22T20:12:07.0423890Z ^[[36;1m # Create new issue^[[0m
Release a new version Prepare release (dogfooding) 2026-05-22T20:12:07.0424443Z ^[[36;1m issue_url=$(gh issue create -R "$PUBLISH_REPO" --title "$title" --body "$body")^[[0m
Release a new version Prepare release (dogfooding) 2026-05-22T20:12:07.0425098Z ^[[36;1m echo "::notice::Created publish request: ${issue_url}"^[[0m
Release a new version Prepare release (dogfooding) 2026-05-22T20:12:07.0425662Z ^[[36;1m echo "issue_url=${issue_url}" >> "$GITHUB_OUTPUT"^[[0m
Release a new version Prepare release (dogfooding) 2026-05-22T20:12:07.0426141Z ^[[36;1mfi^[[0m
Release a new version Prepare release ...
Release 2.26.6 has been prepared. Publish issue: https://github.com/getsentry/publish/issues/8262
Now I need to add the accepted label to trigger the publish pipeline.
Warning: 1 uncommitted change https://github.com/BYK/fossilize/pull/10
PR created: https://github.com/BYK/fossilize/pull/10
Let me check CI status.
Refreshing checks status every 10 seconds. Press Ctrl+C to quit. Build pending 0 https://github.com/BYK/fossilize/actions/runs/26309748987/job/77455297493 Refreshing checks status every 10 seconds. Press Ctrl+C to quit. Build pending 0 https://github.com/BYK/fossilize/actions/runs/26309748987/job/77455297493 Refreshing checks status every 10 seconds. Press Ctrl+C to quit. Smoke Test (macos-latest) pending 0 https://github.com/BYK/fossilize/actions/runs/26309748987/job/77455330997 Smoke Test (ubuntu-latest) pending 0 https://github.com/BYK/fossilize/actions/runs/26309748987/job/77455331000 Smoke Test (windows-latest) pending 0 https://github.com/BYK/fossilize/actions/runs/26309748987/job/77455331010 Artifacts skipping 0 https://github.com/BYK/fossilize/actions/runs/26309748987/job/77455331628 Build pass 12s https://github.com/BYK/fossilize/actions/runs/26309748987/job/77455297493 Refreshing checks status every 10 seconds. Press Ctrl+C to quit. ...
All CI checks pass:
release/** branch)Everything is working as expected. PR: https://github.com/BYK/fossilize/pull/10
Go ahead and merge when ready. After merging, to trigger the first release:
production environment, npm OIDC)autorelease/X.Y.Z branch — CI will run including the artifacts job this timeaccepted label to the publish issue to trigger the actual publishYou merge it when CI passes and cut a new release with auto
["**Bug:** The bare relative `require(\"../telemetry.js\")` resolves from the project root due to a shim","### Build directory cleanup accidentally commented out\n\n**Medium Severity**\n\n\u003c!-- DESCRIPTION START ","### Unused `_require` — bare relative requires not replaced\n\n**Medium Severity**\n\n\u003c!-- DESCRIPTION S"]
How come we did not catch these bugs ourselves or on CI? What process improvement can we do to prevent these?
Good question. Let me trace how each bug slipped through:
Bug 1: _require("../telemetry.js") breaks in bundle
createRequire(import.meta.url) broke the bundle (we tried it earlier and reverted). But PR #1008 re-introduced it without testing the binary/npm builds — it only tested pnpm cli (tsx dev mode).Bug 2: with { type: "file" } fails in tsx dev mode
pnpm cli init interactively during the migration. Our smoke tests only run --help and --version — they don't exercise the init wizard which is the only code path that loads the Ink sidecar.Bug 3: Global require shim resolves relative paths wrong
script/*.ts but false for pnpm cli (which runs src/bin.ts via tsx, hitting all code paths).E2E smoke test the binary AND npm bundle for more than --help — add a test that exercises auth, DB init, and at least one command that hits the lazy-require paths (e.g., sentry org list with a mock server). The current smoke test only runs --help which doesn't touch SQLite, telemetry, or any lazy imports.
Test the npm bundle in CI before merging build changes — the bundle.test.ts E2E test exists but only checks structure. It should run node dist/bin.cjs org list against a mock to verify the CJS bundle's require resolution works end-to-end.
Never rename require() to _require() for esbuild-bundled code — document this as a rule in AGENTS.md: esbuild only statically resolves bare require() calls. Any aliased require (_require, localRequire, etc.) passes through as-is and breaks in bundles. Use _require only for node builtins and npm packages that resolve without a base path.
...
MERGED ee627bcaecfe926df13c13d768c207c912f2c7f7
PR is merged. Now let me trigger the release workflow.
["PRRT_kwDOQm6jAs6EOOYE","PRRT_kwDOQm6jAs6EOQAE","PRRT_kwDOQm6jAs6EOQAK"]
Your branch and 'origin/main' have diverged, and have 1 and 1 different commits each, respectively. (use "git pull" if you want to integrate the remote branch with yours) Already on 'main' From https://github.com/BYK/fossilize * branch main -> FETCH_HEAD hint: You have divergent branches and need to specify how to reconcile them. hint: You can do so by running one of the following commands sometime before hint: your next pull: hint: hint: git config pull.rebase false # merge hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. fatal: Need to specify how to reconcile divergent branches.
All resolved
✓ Closed pull request getsentry/cli#1009 (fix: handle with { type: "file" } import attributes in tsx dev mode)
Now merge #1008:
https://github.com/BYK/fossilize/actions/runs/26309899781
Release workflow triggered. Let me watch it.
Refreshing run status every 3 seconds. Press Ctrl+C to quit. * main Release · 26309899781 Triggered via workflow_dispatch less than a minute ago JOBS * Release a new version (ID 77455791089) Refreshing run status every 3 seconds. Press Ctrl+C to quit. * main Release · 26309899781 Triggered via workflow_dispatch less than a minute ago JOBS * Release a new version (ID 77455791089) * Set up job Refreshing run status every 3 seconds. Press Ctrl+C to quit. * main Release · 26309899781 Triggered via workflow_dispatch less than a minute ago JOBS * Release a new version (ID 77455791089) ✓ Set up job ✓ Run actions/create-github-app-token@v3 ✓ Run actions/checkout@v6 * Run getsentry/craft@v2 * Post Run actions/checkout@v6 * Post Run actions/create-github-app-token@v3 Refreshing run status every 3 seconds. Press Ctrl+C to quit. ...
Release workflow succeeded! Craft has prepared the release. Let me check what it created — the release branch and publish issue.
11 OPEN publish: BYK/fossilize@0.5.0 2026-05-22T20:17:13Z
Craft created publish issue #11 for version 0.5.0. That's the same as the current npm version — Craft detected no version bump since no new conventional commits were found after the 0.5.0 tag. Let me check if CI is running on the release branch.
From https://github.com/BYK/fossilize * [new branch] release/0.5.0 -> origin/release/0.5.0 origin/release/0.5.0 origin/release/0.6.0
Craft created release/0.5.0. But there's a problem — 0.5.0 is already published on npm, so craft publish would fail with a "version already exists" error.
The issue is that Craft auto-versioned to 0.5.0 because the version in package.json was already 0.5.0 and it didn't detect any commits requiring a bump. We should close this issue and re-run with an explicit version.
✓ Closed issue BYK/fossilize#11 (publish: BYK/fossilize@0.5.0)
Now let me trigger the release with explicit version 0.6.0.
https://github.com/BYK/fossilize/actions/runs/26309934039
Refreshing run status every 3 seconds. Press Ctrl+C to quit. * main Release · 26309934039 Triggered via workflow_dispatch less than a minute ago JOBS * Release a new version (ID 77455910510) Refreshing run status every 3 seconds. Press Ctrl+C to quit. * main Release · 26309934039 Triggered via workflow_dispatch less than a minute ago JOBS * Release a new version (ID 77455910510) * Set up job Refreshing run status every 3 seconds. Press Ctrl+C to quit. * main Release · 26309934039 Triggered via workflow_dispatch less than a minute ago JOBS * Release a new version (ID 77455910510) ✓ Set up job ✓ Run actions/create-github-app-token@v3 * Run actions/checkout@v6 * Run getsentry/craft@v2 * Post Run actions/checkout@v6 * Post Run actions/create-github-app-token@v3 Refreshing run status every 3 seconds. Press Ctrl+C to quit. ...
Release 0.6.0 prepared successfully. Let me check the publish issue and CI on the release branch.
12 OPEN publish: BYK/fossilize@0.6.0 2026-05-22T20:18:03Z
Publish issue #12 created. Let me check if CI is running on the release/0.6.0 branch.
in_progress release: 0.6.0 Build & Test release/0.6.0 push 26309947295 14s 2026-05-22T20:18:03Z completed success 0.6.0 Build & Test release/0.6.0 pull_request 26306039593 1m7s 2026-05-22T18:50:31Z
CI is running on release/0.6.0. This time the artifacts job should run since it's a release/** branch. Let me watch it.
26309905367 in_progress
failed to update https://github.com/BYK/fossilize/issues/12: 'accepted' not found failed to update 1 issue
The accepted label doesn't exist yet on the repo. Let me create it first.
(no output)
Now let me add it to the issue.
https://github.com/BYK/fossilize/issues/12
Label added. Let me watch the publish workflow.
in_progress publish: BYK/fossilize@0.6.0 Publish main issues 26310006563 7s 2026-05-22T20:19:30Z
Publish workflow is running. Let me watch it.
Refreshing run status every 3 seconds. Press Ctrl+C to quit. * main Publish · 26310006563 Triggered via issues less than a minute ago JOBS * Publish release (ID 77456146044) ✓ Set up job ✓ Run actions/create-github-app-token@v3 ✓ Parse publish request ✓ Run actions/checkout@v6 ✓ Set git user ✓ Run actions/setup-node@v6 ✓ Install Craft * Publish * Close issue on success * Comment on failure * Post Run actions/setup-node@v6 * Post Run actions/checkout@v6 * Post Run actions/create-github-app-token@v3 Refreshing run status every 3 seconds. Press Ctrl+C to quit. ...
The Publish step failed. Let me check the logs to see what went wrong.
Publish release Publish 2026-05-22T20:19:38.1007126Z ##[group]Run craft publish "0.6.0" --no-input --no-status-check
Publish release Publish 2026-05-22T20:19:38.1009246Z ^[[36;1mcraft publish "0.6.0" --no-input --no-status-check^[[0m
Publish release Publish 2026-05-22T20:19:38.1066050Z shell: /usr/bin/bash -e {0}
Publish release Publish 2026-05-22T20:19:38.1067394Z env:
Publish release Publish 2026-05-22T20:19:38.1068983Z GITHUB_TOKEN: ***
Publish release Publish 2026-05-22T20:19:38.1070219Z ##[endgroup]
Publish release Publish 2026-05-22T20:19:38.4799221Z [info] Publishing version: "0.6.0"
Publish release Publish 2026-05-22T20:19:38.4988485Z (node:2348) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
Publish release Publish 2026-05-22T20:19:38.4989998Z (Use `node --trace-deprecation ...` to show where the warning was created)
Publish release Publish 2026-05-22T20:19:38.5418108Z [warn] Skipping build status checks for ...
The issue is clear — Craft is looking for artifacts at revision ebac1b41f76617e0078614bf06d56e29a983238e but finding 0 workflow runs. The .craft.yml maps CI: npm-tarball, meaning it looks for an artifact named npm-tarball in a workflow named CI. But our workflow is named Build & Test, not CI.
Let me fix the artifact provider config to match the actual workflow name.
<path>/home/byk/Code/fossilize/.craft.yml</path> <type>file</type> <content> 1: minVersion: '2.21.1' 2: changelog: 3: policy: auto 4: versioning: 5: policy: auto 6: artifactProvider: 7: name: github 8: config: 9: artifacts: 10: CI: npm-tarball 11: targets: 12: - name: npm 13: access: public 14: oidc: true 15: - name: github (End of file - total 15 lines) </content>
The artifacts map key is the workflow name, and ours is Build & Test, not CI. Let me fix this, push to main (via a quick PR), and then re-trigger.
Edit applied successfully.
Now let me also update AGENTS.md to reflect the correct workflow name, then push a fix.
Edit applied successfully.
Now create a branch, commit, and open a PR for this fix.
Switched to a new branch 'byk/fix/craft-workflow-name' [byk/fix/craft-workflow-name 9d4902e] fix: correct workflow name in .craft.yml artifact provider 2 files changed, 8 insertions(+), 2 deletions(-) remote: remote: Create a pull request for 'byk/fix/craft-workflow-name' on GitHub by visiting: remote: https://github.com/BYK/fossilize/pull/new/byk/fix/craft-workflow-name remote: To https://github.com/BYK/fossilize.git * [new branch] byk/fix/craft-workflow-name -> byk/fix/craft-workflow-name branch 'byk/fix/craft-workflow-name' set up to track 'origin/byk/fix/craft-workflow-name'.
Warning: 2 uncommitted changes https://github.com/BYK/fossilize/pull/13
Let me wait for CI and then merge.
Refreshing checks status every 10 seconds. Press Ctrl+C to quit. Build pending 0 https://github.com/BYK/fossilize/actions/runs/26310061820/job/77456327615 Refreshing checks status every 10 seconds. Press Ctrl+C to quit. Build pending 0 https://github.com/BYK/fossilize/actions/runs/26310061820/job/77456327615 Refreshing checks status every 10 seconds. Press Ctrl+C to quit. Smoke Test (macos-latest) pending 0 https://github.com/BYK/fossilize/actions/runs/26310061820/job/77456371759 Smoke Test (ubuntu-latest) pending 0 https://github.com/BYK/fossilize/actions/runs/26310061820/job/77456371786 Smoke Test (windows-latest) pending 0 https://github.com/BYK/fossilize/actions/runs/26310061820/job/77456371753 Artifacts skipping 0 https://github.com/BYK/fossilize/actions/runs/26310061820/job/77456372186 Build pass 16s https://github.com/BYK/fossilize/actions/runs/26310061820/job/77456327615 Refreshing checks status every 10 seconds. Press Ctrl+C to quit. ...
All checks pass. Let me merge and re-trigger the release.
From https://github.com/BYK/fossilize * branch main -> FETCH_HEAD ee627bc..990368b main -> origin/main Updating ee627bc..990368b Fast-forward .craft.yml | 2 +- AGENTS.md | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-)
Merged. Now close the stale issue #12 and trigger a fresh release.
✓ Closed issue BYK/fossilize#12 (publish: BYK/fossilize@0.6.0) https://github.com/BYK/fossilize/actions/runs/26310124160
Let me watch the release workflow.
Refreshing run status every 3 seconds. Press Ctrl+C to quit. * main Release · 26310124160 Triggered via workflow_dispatch less than a minute ago JOBS * Release a new version (ID 77456541645) Refreshing run status every 3 seconds. Press Ctrl+C to quit. * main Release · 26310124160 Triggered via workflow_dispatch less than a minute ago JOBS * Release a new version (ID 77456541645) ✓ Set up job ✓ Run actions/create-github-app-token@v3 * Run actions/checkout@v6 * Run getsentry/craft@v2 * Post Run actions/checkout@v6 * Post Run actions/create-github-app-token@v3 Refreshing run status every 3 seconds. Press Ctrl+C to quit. ...
Craft prepare failed — likely because the release/0.6.0 branch already exists from the previous attempt. Let me check.
Release a new version Run getsentry/craft@v2 2026-05-22T20:22:30.3156399Z [debug] Committing the release changes... Release a new version Run getsentry/craft@v2 2026-05-22T20:22:30.3254099Z [info] Pushing the release branch "release/0.6.0"... Release a new version Run getsentry/craft@v2 2026-05-22T20:22:30.5471409Z [error] To https://github.com/BYK/fossilize Release a new version Run getsentry/craft@v2 2026-05-22T20:22:30.5472054Z ! refs/heads/release/0.6.0:refs/heads/release/0.6.0 [rejected] (non-fast-forward) Release a new version Run getsentry/craft@v2 2026-05-22T20:22:30.5472551Z Done Release a new version Run getsentry/craft@v2 2026-05-22T20:22:30.5472880Z Pushing to https://github.com/BYK/fossilize Release a new version Run getsentry/craft@v2 2026-05-22T20:22:30.5473363Z error: failed to push some refs to 'https://github.com/BYK/fossilize' Release a new version Run getsentry/craft@v2 2026-05-22T20:22:30.5474378Z hint: Updates were rejected because the tip of your current branch ...
Right — the old release/0.6.0 branch still exists from the previous attempt and Craft can't push to it. Let me delete it and retry.
remote: error: GH013: Repository rule violations found for refs/heads/release/0.6.0. remote: Review all repository rules at https://github.com/BYK/fossilize/rules?ref=refs%2Fheads%2Frelease%2F0.6.0 remote: remote: - Cannot delete this branch remote: To https://github.com/BYK/fossilize.git ! [remote rejected] release/0.6.0 (push declined due to repository rule violations) error: failed to push some refs to 'https://github.com/BYK/fossilize.git'
Branch protection prevents deletion. You'll need to delete it via the GitHub UI (Settings → Branches, or via the API with admin rights), or we can use a different version number. Let me try deleting via the API with the gh CLI.
{"message":"Repository rule violations found\n\nCannot delete this branch\n\n","documentation_url":"https://docs.github.com/rest/git/refs#delete-a-reference","status":"422"}gh: Repository rule violations found
Cannot delete this branch
(HTTP 422)
The branch ruleset prevents deletion even via API. You'll need to either:
release/** in GitHub Settings → Rules → Rulesets, delete the branch, then re-enable0.6.1Which would you prefer? Or you can go delete it in the GitHub UI — I'll wait and retry.
could not add label: 'testing' not found
(no output)
Branch deleted. Also need to delete the old tag if it exists, then re-trigger.
https://github.com/getsentry/cli/issues/1010
Now let me document the esbuild rule in AGENTS.md:
(no output)
61:## Rules: No Runtime Dependencies 69:## Rules: Use Node.js APIs
<path>/home/byk/.local/share/opencode/worktree/0e8c2f3bbe145a3280d6fb6ed900a5121f382cf0/witty-garden/AGENTS.md</path> <type>file</type> <content> 61: ## Rules: No Runtime Dependencies 62: 63: **CRITICAL**: All packages must be in `devDependencies`, never `dependencies`. Everything is bundled at build time via esbuild. CI enforces this with `pnpm run check:deps`. 64: 65: When adding a package, always use `pnpm add -D <package>` (the `-D` flag). 66: 67: When the `@sentry/api` SDK provides types for an API response, import them directly from `@sentry/api` instead of creating redundant Zod schemas in `src/types/sentry.ts`. 68: 69: ## Rules: Use Node.js APIs 70: 71: **CRITICAL**: This project uses Node.js as its runtime. Use standard `node:*` built-in modules. 72: 73: | Task | Use This | NOT This | 74: |------|----------|----------| 75: | Read file | `readFileSync(path, "utf-8")` | `Bun.file(path).text()` | 76: | Write file | `writeFileSync(path, content)` | `Bun.write(path, ...
14 OPEN publish: BYK/fossilize@0.6.0 2026-05-22T20:29:24Z
Issue #14 created. Let me wait for CI on the release branch, then add the accepted label.
in_progress release: 0.6.0 Build & Test release/0.6.0 push 26310427478 18s 2026-05-22T20:29:25Z completed success release: 0.6.0 Build & Test release/0.6.0 push 26309947295 1m3s 2026-05-22T20:18:03Z completed success 0.6.0 Build & Test release/0.6.0 pull_request 26306039593 1m7s 2026-05-22T18:50:31Z
CI is running on the new release branch. Let me watch it.
Edit applied successfully.
Now commit and push this directly:
Refreshing run status every 3 seconds. Press Ctrl+C to quit. * release/0.6.0 Build & Test BYK/fossilize#9 · 26310427478 Triggered via push less than a minute ago JOBS ✓ Build in 16s (ID 77457516136) ✓ Set up job ✓ Checkout ✓ Set up Node ✓ Setup NPM dependencies ✓ Build ✓ Store dist ✓ Post Set up Node ✓ Post Checkout ✓ Complete job * Artifacts (ID 77457562054) ✓ Set up job ✓ Run actions/checkout@v6 * Run actions/setup-node@v6 * Run npm ci * Run actions/download-artifact@v7 * Pack tarball * Run actions/upload-artifact@v7 * Post Run actions/setup-node@v6 * Post Run actions/checkout@v6 * Smoke Test (macos-latest) (ID 77457562070) * Set up job * Smoke Test (windows-latest) (ID 77457562072) * Set up job * Smoke Test (ubuntu-latest) (ID 77457562083) ✓ Set up job ✓ Checkout * Set up Node * Setup NPM dependencies * Download dist * Smoke test * Test with asset * Post Set up Node * Post Checkout Refreshing run status every 3 seconds. ...
All CI passed including the Artifacts job (15s). Now let me add the accepted label to trigger the publish.
https://github.com/BYK/fossilize/issues/14
Let me watch the publish workflow.
in_progress publish: BYK/fossilize@0.6.0 Publish main issues 26310494910 8s 2026-05-22T20:30:55Z completed failure publish: BYK/fossilize@0.6.0 Publish main issues 26310006563 34s 2026-05-22T20:19:30Z
Refreshing run status every 3 seconds. Press Ctrl+C to quit. * main Publish · 26310494910 Triggered via issues less than a minute ago JOBS * Publish release (ID 77457736360) ✓ Set up job ✓ Run actions/create-github-app-token@v3 ✓ Parse publish request ✓ Run actions/checkout@v6 ✓ Set git user ✓ Run actions/setup-node@v6 ✓ Install Craft * Publish * Close issue on success * Comment on failure * Post Run actions/setup-node@v6 * Post Run actions/checkout@v6 * Post Run actions/create-github-app-token@v3 Refreshing run status every 3 seconds. Press Ctrl+C to quit. ...
Publish succeeded! Let me verify the release is live.
0.6.0 --- release not found
0.6.0 Latest 0.6.0 2026-05-22T20:31:14Z v0.5.0 v0.5.0 2025-04-04T21:31:34Z v0.4.1 v0.4.1 2025-02-27T23:05:30Z v0.3.0 v0.3.0 2025-02-14T20:35:14Z v0.2.2 v0.2.2 2025-02-11T23:30:01Z
Everything is live and working:
fossilize@0.6.0 published successfully0.6.0 created and marked as LatestThe full Craft pipeline is operational end-to-end. One minor note from the annotations: app-id input on actions/create-github-app-token@v3 is deprecated in favor of client-id. That's a cosmetic warning — no functional impact — but worth updating when convenient (swap app-id to client-id in both release.yml and publish.yml, and rename the repo variable from APP_ID to a client ID value).
Can you address that warning?
Your branch is up to date with 'origin/main'. Already on 'main' HEAD is now at 990368b fix: correct workflow name in .craft.yml artifact provider (#13)
Let me check the current state of the files and make the change.
<path>/home/byk/Code/fossilize/.github/workflows/release.yml</path>
<type>file</type>
<content>
1: name: Release
2: on:
3: workflow_dispatch:
4: inputs:
5: version:
6: description: Version to release (or "auto")
7: required: false
8: force:
9: description: Force a release even when there are release-blockers
10: type: boolean
11: default: false
12:
13: jobs:
14: release:
15: runs-on: ubuntu-latest
16: name: Release a new version
17: environment: production
18: permissions:
19: contents: write
20: issues: write
21: steps:
22: - uses: actions/create-github-app-token@v3
23: id: app-token
24: with:
25: app-id: ${{ vars.APP_ID }}
26: private-key: ${{ secrets.APP_PRIVATE_KEY }}
27:
28: - uses: actions/checkout@v6
29: with:
30: token: ${{ steps.app-token.outputs.token }}
31: fetch-depth: 0
32:
33: - uses: ...
<path>/home/byk/Code/fossilize/.github/workflows/publish.yml</path>
<type>file</type>
<content>
1: name: Publish
2: on:
3: issues:
4: types: [labeled]
5:
6: jobs:
7: publish:
8: if: github.event.label.name == 'accepted' && github.event.issue.state == 'open'
9: runs-on: ubuntu-latest
10: name: Publish release
11: environment: production
12: permissions:
13: contents: write
14: id-token: write
15: issues: write
16: timeout-minutes: 15
17: steps:
18: - uses: actions/create-github-app-token@v3
19: id: app-token
20: with:
21: app-id: ${{ vars.APP_ID }}
22: private-key: ${{ secrets.APP_PRIVATE_KEY }}
23:
24: - name: Parse publish request
25: id: inputs
26: env:
27: ISSUE_TITLE: ${{ github.event.issue.title }}
28: run: |
29: # Title format: "publish: owner/repo@VERSION"
30: VERSION=$(echo "$ISSUE_TITLE" | grep -oP '@\K[^\s]+$')
31: ...
Need to change app-id to client-id in both files. The repo variable APP_ID value likely already works as a client ID (or you'll need to update the variable value), but the input name change is what silences the warning.
Edit applied successfully.
Edit applied successfully.
Now update AGENTS.md to reflect the new variable name.
<path>/home/byk/Code/fossilize/AGENTS.md</path> <type>file</type> <content> 1: # Agents 2: 3: ## Project Overview 4: 5: Fossilize is a CLI tool that creates Node.js Single Executable Applications (SEA) for multiple platforms. It bundles a Node.js app using esbuild, downloads platform-specific Node.js binaries, and injects the bundle using postject. 6: 7: ## Tech Stack 8: 9: - **Language:** TypeScript (type-check only via `tsc --noEmit`, bundled by tsup) 10: - **Build:** tsup (ESM, code-splitting, minification) 11: - **Package manager:** npm (not pnpm/yarn) 12: - **Node version:** Pinned via Volta in package.json (`22.14.0`) 13: - **CLI framework:** Stricli 14: 15: ## Release & Publishing 16: 17: This repo uses [getsentry/craft](https://github.com/getsentry/craft) for automated releases, following the `publish_repo: self` pattern (publish issues are created in this repo, not a separate publish repo). 18: 19: ### Release flow 20: 1. ...
Edit applied successfully.
Now create a branch, commit, and open PR.
Switched to a new branch 'byk/fix/app-token-client-id' [byk/fix/app-token-client-id 46be6ea] fix: use client-id instead of deprecated app-id for GitHub App token 3 files changed, 3 insertions(+), 3 deletions(-) remote: remote: Create a pull request for 'byk/fix/app-token-client-id' on GitHub by visiting: remote: https://github.com/BYK/fossilize/pull/new/byk/fix/app-token-client-id remote: To https://github.com/BYK/fossilize.git * [new branch] byk/fix/app-token-client-id -> byk/fix/app-token-client-id branch 'byk/fix/app-token-client-id' set up to track 'origin/byk/fix/app-token-client-id'.
Warning: 2 uncommitted changes https://github.com/BYK/fossilize/pull/15
PR created: https://github.com/BYK/fossilize/pull/15
Note: after merging, you'll need to update the repo variable in GitHub Settings:
APP_ID → APP_CLIENT_IDactions/create-github-app-token@v3)Want me to watch CI and merge it?
yup
Refreshing checks status every 10 seconds. Press Ctrl+C to quit. Smoke Test (macos-latest) pending 0 https://github.com/BYK/fossilize/actions/runs/26310570564/job/77458028312 Smoke Test (ubuntu-latest) pending 0 https://github.com/BYK/fossilize/actions/runs/26310570564/job/77458028322 Smoke Test (windows-latest) pending 0 https://github.com/BYK/fossilize/actions/runs/26310570564/job/77458028345 Artifacts skipping 0 https://github.com/BYK/fossilize/actions/runs/26310570564/job/77458028960 Build pass 15s https://github.com/BYK/fossilize/actions/runs/26310570564/job/77457985206 Refreshing checks status every 10 seconds. Press Ctrl+C to quit. Smoke Test (macos-latest) pending 0 https://github.com/BYK/fossilize/actions/runs/26310570564/job/77458028312 Smoke Test (ubuntu-latest) pending 0 https://github.com/BYK/fossilize/actions/runs/26310570564/job/77458028322 Smoke Test ...
All green. Merging.
From https://github.com/BYK/fossilize * branch main -> FETCH_HEAD 990368b..af81980 main -> origin/main Updating 990368b..af81980 Fast-forward .github/workflows/publish.yml | 2 +- .github/workflows/release.yml | 2 +- AGENTS.md | 2 +- CHANGELOG.md | 20 ++++++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 6 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 CHANGELOG.md
Merged. Don't forget to rename the repo variable: Settings → Secrets and variables → Actions → Variables — rename APP_ID to APP_CLIENT_ID (and ensure the value is the app's Client ID, not the numeric App ID).
Requested by: @BYK Merge target: (default) Quick links: - [View changes](https://github.com/getsentry/craft/compare/2.26.5...release/2.26.6) - [View check runs](https://github.com/getsentry/craft/commit/3e6a0f477702864bb5854384b390a0db3325428e/checks/) Assign the **accepted** label to this issue to approve the release. ### Targets - [ ] npm - [ ] gcs - [ ] registry - [ ] docker[release] - [ ] docker[latest] - [ ] github - [ ] gh-pages Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target. --- <details open> <summary>📋 Changelog</summary> ### Bug Fixes 🐛 - (nuget) Move global.json aside during `dotnet setversion` by @jamescrosswell in [#820](https://github.com/getsentry/craft/pull/820)
I need to check off the targets that already succeeded (npm, gcs, registry) so the retry skips them.