Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
177 commits
Select commit Hold shift + click to select a range
3508f1d
M60–M61: the host API record, the vscode boundary, the webview's host…
claude Sep 26, 2026
78e3f42
M63a: the ACP agent, the key in the OS credential store, Open VSX and…
claude Sep 26, 2026
9884f18
Q60 done, Q65 blocked: the agent installs from its release URL
claude Sep 26, 2026
587d610
M62a: the VS Code floor at 1.99 (PLAN.md M62, A8)
claude Sep 26, 2026
2922899
M62b: Eclipse Theia 1.75 qualified; Q65 answered (NPM_TOKEN set)
claude Sep 26, 2026
675f1b5
M63b: the ACP agent in Emacs (agent-shell) and Neovim (CodeCompanion)
claude Sep 26, 2026
a4e8993
M63b: the ACP agent in Zed 1.20
claude Sep 26, 2026
61f961f
M63b: JupyterLab through Jupyter AI's ACP client
claude Sep 26, 2026
1b94043
M63c: the editor's MCP servers reach Muse Code
claude Sep 26, 2026
32a9e63
CI: host checks for the VS Code family and the ACP clients (hosts.yml)
claude Sep 26, 2026
7ac3837
CI: the VS Code forks' latest Linux builds (forks.yml)
claude Sep 26, 2026
614d05b
Merge main (M45, session goals) into the IDE compatibility branch
claude Sep 26, 2026
99b76e0
The forks' first CI results; the agent in PRIVACY.md
claude Sep 26, 2026
1decebe
docs/acp.md: starting the agent on Windows as node and its script
claude Sep 26, 2026
7bd6fec
M63c: paid features in the ACP agent, confirmed with their price
claude Sep 26, 2026
b17edd1
Forks: Kiro's VS Code base is vsCodeVersion (1.131.0)
claude Sep 26, 2026
a9ba78d
Merge main (M46, background work and the user shell) into the IDE com…
claude Sep 26, 2026
68d450e
Merge main (M47, workflows) into the IDE compatibility branch
claude Sep 26, 2026
faace73
Merge main (M48-M56) into the IDE compatibility branch (M60-M63)
RandyNorthrup Sep 27, 2026
2559a9b
Release: create the Open VSX namespace before the first publish
RandyNorthrup Sep 27, 2026
bc210be
Merge main (0.9.0/0.9.1, M57, M58) into PR #32 (M60-M63)
RandyNorthrup Sep 28, 2026
b368edf
Set the ACP agent's bundle budget to 850 KiB (PLAN.md D6)
RandyNorthrup Sep 28, 2026
08bda5a
docs/acp.md: networks and proxies for the ACP agent
RandyNorthrup Sep 28, 2026
e231349
Run keystore.sh on the owner's Windows 11 VM and Mac mini
RandyNorthrup Sep 28, 2026
59490d3
PRIVACY: the ACP agent's paid-use grants and network path
RandyNorthrup Sep 28, 2026
87383c7
Annotate the ACP agent's login spawn for SAST (PLAN.md section 8)
RandyNorthrup Sep 28, 2026
d2f9c13
Record the gate for PR #32 joined with main
RandyNorthrup Sep 28, 2026
83a4530
ACP agent: make the proxy limit loud and its advice its own (Q66)
RandyNorthrup Sep 28, 2026
6805972
Record the gate on the final tree with Q66
RandyNorthrup Sep 28, 2026
29fe2d8
test: lock Android/Termux P0 behavior for launch and voice
Piangpi1997 Sep 28, 2026
c3d7702
M69: web fetch on both backends, pinned to checked public addresses
RandyNorthrup Sep 28, 2026
059ea2a
M79: plans as files, and a fresh conversation from a brief
RandyNorthrup Sep 28, 2026
959244f
Merge remote-tracking branch 'origin/main' into feature/m69-web-fetch
RandyNorthrup Sep 28, 2026
9a38b4d
M72: turn checkpoints in a shadow repository, restore and redo
RandyNorthrup Sep 28, 2026
a62a1bc
Merge origin/main (PR #50, the D49/D50 plan) into feature/m72-checkpo…
RandyNorthrup Sep 28, 2026
d95c36d
Merge origin/plan/d49-competitive-program into feature/m79-plans-as-f…
RandyNorthrup Sep 28, 2026
c62cb06
M68: the verify loop, checks after every round of edits
RandyNorthrup Sep 28, 2026
b1ac17f
M69 review: stop, race, bound and word web fetch as the reviewers found
RandyNorthrup Sep 28, 2026
369028a
Merge remote-tracking branch 'origin/main' into feature/m68-verify-loop
RandyNorthrup Sep 28, 2026
4ce27cb
M72 certification: the gate on the merged tree
RandyNorthrup Sep 28, 2026
ec34f25
M69: fail closed on NAT64 discovery; a hook's allow keeps the fetch card
RandyNorthrup Sep 28, 2026
711bc03
M69: ask trust and the mode again after every await in web fetch
RandyNorthrup Sep 28, 2026
2cbb9ee
Merge main (PR #50: D49, D50, M67-M85) into PR #32
RandyNorthrup Sep 28, 2026
c5c4045
M67: code intelligence tools on both backends, and a repo map
RandyNorthrup Sep 28, 2026
f8aa759
Merge PR #49 (CLI sign-in detection) into PR #32
RandyNorthrup Sep 28, 2026
99649cf
AGENTS.md rule 8: the OS credential store outside VS Code (D61)
RandyNorthrup Sep 28, 2026
39bb79e
M79 review: untrusted plan files, restart, plan turns, one pass
RandyNorthrup Sep 28, 2026
335a533
Merge remote-tracking branch 'origin/main' into feature/m79-plans-as-…
RandyNorthrup Sep 28, 2026
0532d94
Merge origin/main (PR #50) into feature/m67-code-intel
RandyNorthrup Sep 28, 2026
7ad1815
M69 cert: record the full gate on 711bc033
RandyNorthrup Sep 28, 2026
e0ad04d
Fix what the pre-push review found in PR #32's integration
RandyNorthrup Sep 28, 2026
f8063b8
Merge PR #49's latest head (328efb5) into PR #32
RandyNorthrup Sep 28, 2026
fb3026e
M79 PR review: read plans with the panel's parser; keep plan turns on…
RandyNorthrup Sep 28, 2026
c61c8fa
M68 review: fix every finding of the three class reviews in one pass
RandyNorthrup Sep 28, 2026
569dd86
M69: prove NAT64 absence by DNS only; hide elements a page leaves open
RandyNorthrup Sep 28, 2026
13ee7d4
Merge PR #49's latest head (5184f26) into PR #32
RandyNorthrup Sep 28, 2026
1b29fca
M68: fix Codex's four findings on PR #54, and sweep their classes
RandyNorthrup Sep 28, 2026
bca8d6e
Merge origin/main (PR #49) into feature/m67-code-intel
RandyNorthrup Sep 28, 2026
d787e70
M72 review: fix every finding on 4ce27cb8 in one pass
RandyNorthrup Sep 28, 2026
9be57e5
Merge remote-tracking branch 'origin/main' into feature/m72-checkpoints
RandyNorthrup Sep 28, 2026
6729c3f
M79: the plan reader is a lazily loaded bundle, dist/planMarkdown.js
RandyNorthrup Sep 28, 2026
0a34294
Record the gate on the final tree (13ee7d4)
RandyNorthrup Sep 28, 2026
a209130
Merge main (PR #49 merged, c42c4d5) into PR #32
RandyNorthrup Sep 28, 2026
5ef2eab
M69: follow the WHATWG parser for what the converter hides
RandyNorthrup Sep 28, 2026
7c0ff0c
Host checks: the fake CLI's credential in the captured sign-in shape
claude Sep 28, 2026
ddb544e
Merge origin/main (PR #49) into feature/m69-web-fetch
RandyNorthrup Sep 28, 2026
45f936c
M68: act on the file the edit wrote, as it left it (PR #54, Codex rou…
RandyNorthrup Sep 28, 2026
83833fe
ACP agent: the Codex review of a209130
claude Sep 28, 2026
3af13e1
M72: share a checkpoint store safely across windows; keep empty folders
RandyNorthrup Sep 28, 2026
2ce7e4b
Merge remote-tracking branch 'origin/main' into feature/m68-verify-loop
RandyNorthrup Sep 28, 2026
4eb0156
Close Codex's four P1s on a209130 by class across the ACP agent
RandyNorthrup Sep 28, 2026
98173da
Merge origin/main (PR #49) into feature/m79-plans-as-files
RandyNorthrup Sep 28, 2026
a49d373
M69: parse pages with parse5 on a worker; hide exactly what HTML hides
RandyNorthrup Sep 28, 2026
e4b035a
M68: one conditional write and one verify ledger (PR #54, Codex round 3)
RandyNorthrup Sep 28, 2026
b0b16d2
README: how this extension is built
RandyNorthrup Sep 28, 2026
0d2889c
README: say what the gates and drills actually cover
RandyNorthrup Sep 28, 2026
6fe3e07
M79 redesign: the brief is what the panel showed, by construction
RandyNorthrup Sep 28, 2026
4c43fb1
M72 cert: Kubuntu gate and local a11y for 3af13e1e
RandyNorthrup Sep 28, 2026
585af10
M67 review round: stale renames refused, file operations seen, repo m…
RandyNorthrup Sep 28, 2026
6b2a5bf
M68: fix the review of the ledger redesign (e4b035a3)
RandyNorthrup Sep 28, 2026
37ea35e
README: qualify the evidence claims
RandyNorthrup Sep 28, 2026
c6e3b8b
README: describe the build process as it runs since September 2026
RandyNorthrup Sep 28, 2026
e9ebe7a
README: exact date for the build process, and how the gates run today
RandyNorthrup Sep 28, 2026
02e8ca1
M69: fix every redesign review finding (encodings, workers, hidden co…
RandyNorthrup Sep 28, 2026
19f843f
M69: the converter's tests check the output bound, not wall-clock time
RandyNorthrup Sep 28, 2026
5035470
M79 review: refuse unshown characters; pin the fence label
RandyNorthrup Sep 28, 2026
da70b80
M68: fix Grok's review of 6b2a5bfb
RandyNorthrup Sep 28, 2026
db23f6a
M67 second review: unsaved editors by real path, one rename plan, hon…
RandyNorthrup Sep 28, 2026
defa4da
README: one complete npm run quality on a test machine before each push
RandyNorthrup Sep 28, 2026
83eedf2
M69: refuse XHTML; carry inherited visibility down the walk
RandyNorthrup Sep 28, 2026
51c80e8
M68: record the Kubuntu rig gate on da70b80f in the certification
RandyNorthrup Sep 28, 2026
2fa6c1a
M72: one policy for the checkpoint store's lock
RandyNorthrup Sep 28, 2026
01f7f76
M79: pin the review's non-dated plan name; the control-character prod…
RandyNorthrup Sep 28, 2026
ca263c5
Close Codex's two findings on 4eb0156c by class in the ACP agent
RandyNorthrup Sep 28, 2026
107510a
M67: repo map within its whole budget; document_symbols at the edited…
RandyNorthrup Sep 28, 2026
496fdee
ACP agent: stop a reloaded session's turn before its replacement foll…
RandyNorthrup Sep 28, 2026
02f5492
Merge pull request #56 from RandyNorthrup/docs/how-its-built
RandyNorthrup Sep 28, 2026
a9f665b
M68: judge which files a command runs conservatively (PR #54, Codex r…
RandyNorthrup Sep 28, 2026
66faa3a
Merge remote-tracking branch 'origin/main' into integrate/pr32
RandyNorthrup Sep 28, 2026
6f1709e
M72: close the lock policy's gaps (Grok on 2fa6c1ae)
RandyNorthrup Sep 28, 2026
b6f24e7
M79 review: plan actions survive a reload; a plan that cannot open lo…
RandyNorthrup Sep 28, 2026
4c4d14c
Read a fetched page's text as served; emulate no rendering
RandyNorthrup Sep 28, 2026
97f7963
M68: PLAN describes the conservative command judgement (Grok, round 4)
RandyNorthrup Sep 28, 2026
a70f540
Merge remote-tracking branch 'origin/main' into feature/m68-verify-loop
RandyNorthrup Sep 28, 2026
f2d20a5
M68: a check's grant is its own, and a lapsed rule is asked again
RandyNorthrup Sep 28, 2026
46ba540
Stop a turn cancelled while starting once it exists; ignore stray can…
RandyNorthrup Sep 29, 2026
bf0d230
WIP m68 (unverified): paused by usage limits 2026-09-28
RandyNorthrup Sep 29, 2026
e73e854
WIP m72 (unverified): paused by usage limits 2026-09-28
RandyNorthrup Sep 29, 2026
22f62ed
fix(acp): preserve session ownership and revoke paid grants safely
RandyNorthrup Sep 29, 2026
74f3c2c
test: canonicalize ACP grant fixtures across local platforms
RandyNorthrup Sep 29, 2026
34a5672
test: expand Windows short paths with native resolution
RandyNorthrup Sep 30, 2026
fefb606
Merge pull request #32 from RandyNorthrup/claude/vigilant-euler-75cvbd
RandyNorthrup Sep 30, 2026
16e613e
Merge PR32 foundation into M67 and close pre-write cancellation gap
RandyNorthrup Sep 30, 2026
15d84a4
Merge verified main into M67 with the tested source tree
RandyNorthrup Sep 30, 2026
4c35e73
Merge pull request #57 from RandyNorthrup/feature/m67-code-intel
RandyNorthrup Sep 30, 2026
a8900be
Merge verified PR32 and code intelligence into M69 web fetch
RandyNorthrup Sep 30, 2026
ee4d3a9
Join current main ancestry for verified M69 candidate
RandyNorthrup Sep 30, 2026
c323dcc
Merge pull request #52 from RandyNorthrup/feature/m69-web-fetch
RandyNorthrup Sep 30, 2026
a611ff7
Merge verified foundation and web fetch into M79 plans with safety re…
RandyNorthrup Sep 30, 2026
0ec35c7
Join current main ancestry with identical verified M79 content
RandyNorthrup Sep 30, 2026
24ff09b
Merge pull request #53 from RandyNorthrup/feature/m79-plans-as-files
RandyNorthrup Sep 30, 2026
16e1378
Integrate Android Termux regression tests with verified current product
RandyNorthrup Sep 30, 2026
860d6ec
Join current main ancestry with identical verified Android test candi…
RandyNorthrup Sep 30, 2026
f7db571
Merge pull request #51 from Piangpi1997/android-termux-p0-tests
RandyNorthrup Sep 30, 2026
325a772
Integrate M68 verify loop with current main and fence workspace writes
RandyNorthrup Sep 30, 2026
b718db3
Join latest main ancestry for the verified M68 candidate
RandyNorthrup Sep 30, 2026
3270944
Merge pull request #54 from RandyNorthrup/feature/m68-verify-loop
RandyNorthrup Sep 30, 2026
9c4ac7d
M72: turn checkpoints on main (PLAN.md D51), the verified part of the…
RandyNorthrup Sep 30, 2026
cfe5753
M72: memory writes keep checkpoint copies and the Memory view holds t…
RandyNorthrup Sep 30, 2026
80b768f
Pin the activation wiring of the checkpointed memory to its guards
RandyNorthrup Sep 30, 2026
c5fec8d
Give the integration tests a short user-data directory under a long c…
RandyNorthrup Sep 30, 2026
dd4daa8
Type the macOS worker cap so typecheck:host passes
RandyNorthrup Sep 30, 2026
e593ebe
M72: final admission for the user's `!` command, proof for a shell th…
RandyNorthrup Sep 30, 2026
1fd98aa
Prove no process when spawn throws; tell the model nothing about a sh…
RandyNorthrup Sep 30, 2026
62c856d
M72: git's path limits in the checkpoint store (lane native)
RandyNorthrup Sep 30, 2026
9f7c7b7
Document the M72 correction batch before 0.10.0
RandyNorthrup Sep 30, 2026
e78a949
Hold the restore lease for an export in either spelling of the worksp…
RandyNorthrup Sep 30, 2026
bd076ab
Record the export lease fix: the MEM verifier's finding was right for…
RandyNorthrup Sep 30, 2026
0000cc3
Regenerate the host API inventory: node:crypto is imported by 22 files
RandyNorthrup Sep 30, 2026
129099c
Share the setup of the new wrapper and lease tests so jscpd finds no …
RandyNorthrup Oct 1, 2026
8638b95
Record the four-machine gate of the M72 candidate and NATIVE's unrun …
RandyNorthrup Oct 1, 2026
a424e52
Merge the original PR #55 history into the M72 candidate
RandyNorthrup Oct 1, 2026
3e0bea5
Fix the first Codex review of the final M72 head, and the Windows run…
RandyNorthrup Oct 1, 2026
d2e2a84
Record the first Codex review of the final M72 head: five fixed, one …
RandyNorthrup Oct 1, 2026
8e9d3a1
Fix the second Codex review of M72: storage the model can reach, and …
RandyNorthrup Oct 1, 2026
1e8fbbd
Protect an explicit checkpoint storage root, and withdraw the native …
RandyNorthrup Oct 1, 2026
8d59fb5
Keep the model catalogue across conversations: the picker was empty a…
RandyNorthrup Oct 1, 2026
54a1eaf
Refuse tool writes into any shadow.git, and never delete a file the j…
RandyNorthrup Oct 1, 2026
669e830
Expect a restore to go ahead when the native start it crossed was ref…
RandyNorthrup Oct 1, 2026
2ae4caf
Refuse a case-differing link on a case-sensitive volume during restore
RandyNorthrup Oct 1, 2026
d09d472
Refuse a restore or redo step whose execute bit changed since the cap…
RandyNorthrup Oct 1, 2026
68d89ff
Refresh repository exclude rules before each capture
RandyNorthrup Oct 1, 2026
a704a20
Share the case-volume tests' workspace setup (jscpd)
RandyNorthrup Oct 1, 2026
6b0e39c
Keep tool copies for a recorded turn after the setting goes off
RandyNorthrup Oct 1, 2026
c80bf11
Leave out a repository an ignore rule hides, and restore no tool writ…
RandyNorthrup Oct 1, 2026
c6e3141
Order a conversation's turns by number, and merge overlapping turns b…
RandyNorthrup Oct 1, 2026
a5a4b1a
Record the third Codex review of M72: seven fixed, limits named
RandyNorthrup Oct 1, 2026
18f3c5a
Share the checkpoint repository's first setup between a running mark …
RandyNorthrup Oct 1, 2026
22ec675
Record the Theia check's cause: a first-setup race in the checkpoint …
RandyNorthrup Oct 1, 2026
2ab286a
Remove a conversation's archives when it is unarchived
RandyNorthrup Oct 1, 2026
67a5ab4
Leave alone an ignored file a tool copied but never changed
RandyNorthrup Oct 1, 2026
404d6e4
Refuse checkpoint storage that a link puts inside the workspace
RandyNorthrup Oct 1, 2026
03cd615
Keep what the user saves while a turn runs out of its restore
RandyNorthrup Oct 1, 2026
357216b
Record the fourth Codex review of M72: four fixed, and the release rule
RandyNorthrup Oct 1, 2026
b244132
Inventory the two save events the checkpoint store listens to
RandyNorthrup Oct 1, 2026
821d93f
Give the CI quality job 45 minutes: Windows was cut off at 30
RandyNorthrup Oct 1, 2026
16f1e90
Bound the URL scheme in the log redactor: long lines took quadratic time
RandyNorthrup Oct 1, 2026
75b8af4
Note the extension's writes for the user as theirs; bind restore to i…
RandyNorthrup Oct 1, 2026
e3c07d0
Blame overlapping earlier turns of the same conversation, and bound u…
RandyNorthrup Oct 1, 2026
7389b41
Bound an earlier turn's unseen end at its conversation's next turn
RandyNorthrup Oct 1, 2026
a8c9044
Format the earlier-turn overlap filter
RandyNorthrup Oct 1, 2026
0ca9907
Record the fifth Codex review of M72: four fixed, two known limits
RandyNorthrup Oct 1, 2026
67187c1
Blame a turn numbered at once with the restored one, and refuse ignor…
RandyNorthrup Oct 1, 2026
204a369
Order a window's turn starts, tool copies and saves by a monotonic clock
RandyNorthrup Oct 1, 2026
5b26a82
Share the user's saves across the windows on a folder
RandyNorthrup Oct 1, 2026
1fb31bc
Record the sixth Codex review of M72: five fixed; share the two-windo…
RandyNorthrup Oct 1, 2026
532a6ee
Ship turn checkpoints as a Preview, off by default (D63)
RandyNorthrup Oct 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
37 changes: 32 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ jobs:
quality:
name: quality (${{ matrix.os }})
runs-on: ${{ matrix.os }}
timeout-minutes: 30
# The whole job's budget, not a test's: the Windows runner needed ~29 min
# by 0.10.0 and was cut off mid-accessibility gate at 30 (2026-10-01).
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -161,17 +163,21 @@ jobs:
- run: npm ci
- run: npm run package
# What must be inside the package: the licence, the third-party
# notices, both dictation helpers and the five bundles (the webview
# notices, the native helpers and every runtime bundle (the webview
# loads main.css beside main.js; the extension requires modelApi.js
# when the Model API backend first starts, M57).
# when the Model API backend first starts, M57, and starts
# pageWorker.js as a worker for each web page it converts, M69).
- name: the .vsix carries the notices, the helpers, the bundles and the manifest's text
run: |
listing="$(unzip -Z1 ./*.vsix)"
for entry in extension/LICENSE.txt extension/THIRD_PARTY_NOTICES.txt extension/package.nls.json \
extension/native/windows/dictate.ps1 extension/native/darwin/muse-dictate \
extension/native/windows/dictate.ps1 extension/native/windows/capture.ps1 \
extension/native/windows/MuseSparkJob.cs extension/native/windows/MuseSparkMcpJob.cs \
extension/native/windows/MuseSparkMcpLauncher.cs extension/native/darwin/muse-dictate \
extension/dist/extension.js extension/dist/modelApi.js extension/dist/searchWorker.js \
extension/dist/pageWorker.js extension/dist/planMarkdown.js extension/dist/checkpointStore.js \
extension/dist/webview/main.js extension/dist/webview/main.css; do
if ! grep -qx "$entry" <<< "$listing"; then
if ! grep -Fxq -- "$entry" <<< "$listing"; then
echo "::error::$entry is missing from the .vsix" >&2
exit 1
fi
Expand All @@ -182,6 +188,27 @@ jobs:
name: muse-spark-code-vsix
path: '*.vsix'
if-no-files-found: error
# The ACP agent's npm package (M63, PLAN.md D62), from the same
# production build `npm run package` just ran.
- run: node scripts/package-acp.mjs
- name: the agent's package carries its bundles, tables, notices and manifest
run: |
listing="$(tar -tzf dist/muse-spark-code-acp-*.tgz)"
for entry in package/package.json package/dist/acp.js package/dist/modelApi.js \
package/dist/searchWorker.js package/dist/pageWorker.js \
package/native/windows/MuseSparkJob.cs package/native/windows/MuseSparkMcpJob.cs \
package/THIRD_PARTY_NOTICES.txt package/LICENSE package/README.md package/l10n/ui.de.json; do
if ! grep -Fxq -- "$entry" <<< "$listing"; then
echo "::error::$entry is missing from the agent's package" >&2
exit 1
fi
done
echo "the agent's package holds $(wc -l <<< "$listing") entries, the required ones included"
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: muse-spark-code-acp
path: dist/muse-spark-code-acp-*.tgz
if-no-files-found: error

secrets:
name: gitleaks
Expand Down
79 changes: 79 additions & 0 deletions .github/workflows/forks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# The VS Code forks that ship Linux builds (PLAN.md M62b): Cursor, Devin
# Desktop (Windsurf until 2026), Kiro and Positron, each at its latest
# release from its own update feed (test/hosts/fork-release.mjs). Each job
# installs the .vsix with the fork's CLI and runs the integration tests in
# the fork; the job summary names the fork's version and its VS Code base.
#
# Apart from hosts.yml because these are the forks' latest builds, not
# pinned ones, and their feeds can change without notice: every Monday, by
# hand, and on pull requests that change this check. Every job has a
# timeout and leaves no token in the git config; none pushes.
name: Forks

on:
pull_request:
paths:
- 'test/hosts/fork-release.mjs'
- 'test/hosts/installed.vscode-test.mjs'
- 'test/hosts/run-fork.sh'
- '.github/workflows/forks.yml'
schedule:
- cron: '41 6 * * 1'
workflow_dispatch:

permissions:
contents: read

concurrency:
group: forks-${{ github.ref }}
cancel-in-progress: true

jobs:
vsix:
name: vsix
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run package
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: forks-vsix
path: '*.vsix'
if-no-files-found: error

fork:
name: ${{ matrix.fork }}
needs: vsix
runs-on: ubuntu-latest
timeout-minutes: 25
strategy:
fail-fast: false
matrix:
fork: [cursor, devin-desktop, kiro, positron]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run build:dev
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: forks-vsix
path: forks-vsix
- name: ${{ matrix.fork }}
env:
# Positron's latest release is read from the GitHub API.
GH_TOKEN: ${{ github.token }}
run: xvfb-run -a sh test/hosts/run-fork.sh "${{ matrix.fork }}" forks-vsix/*.vsix "$RUNNER_TEMP/fork"
Loading
Loading