Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
d488fd2
fix(remote): gate background processes behind terminal permission
Shadowfetchapps Sep 26, 2026
0286d36
test(cli): distinguish MCP discovery from approved tool calls
Shadowfetchapps Sep 26, 2026
8625ffe
fix(context): compact on token pressure and retain useful history
Shadowfetchapps Sep 26, 2026
3f83aba
docs: track full flagship acceptance scope and implementation evidence
Shadowfetchapps Sep 26, 2026
5e2ab99
feat(verification): bind configured check receipts to observed worksp…
Shadowfetchapps Sep 26, 2026
4113b92
feat(verification): reassess historical checks before display and acc…
Shadowfetchapps Sep 26, 2026
ddb6ba5
fix(compare): persist outcomes before guarded lane cleanup
Shadowfetchapps Sep 26, 2026
4e88d34
feat(compare): persist Keep intent and retain recovery preimages
Shadowfetchapps Sep 26, 2026
201901c
feat(compare): reconcile interrupted Keep against recorded trees
Shadowfetchapps Sep 26, 2026
27ac56a
test(compare): exercise real crashes around apply and cleanup
Shadowfetchapps Sep 26, 2026
5978fbd
fix(compare): scope coordination by project and lock repository mutat…
Shadowfetchapps Sep 26, 2026
979196b
fix(release): verify draft assets before immutable publication
Shadowfetchapps Sep 26, 2026
974ad5f
fix(providers): enforce negotiated ACP image and protocol capabilities
Shadowfetchapps Sep 26, 2026
cc15e89
feat(local): wait cancellably for managed model leases
Shadowfetchapps Sep 26, 2026
e58fa57
feat(local): schedule managed jobs in submission order across projects
Shadowfetchapps Sep 26, 2026
9956bfe
feat(compare): run multiple installed GGUF models sequentially
Shadowfetchapps Sep 26, 2026
1c8592e
test(local): qualify real inference with explicit installed models
Shadowfetchapps Sep 26, 2026
e3ee157
fix(claude): avoid repeating streamed text in final results
Shadowfetchapps Sep 26, 2026
2d33af6
fix(providers): preserve partial frames and bound vendor output
Shadowfetchapps Sep 27, 2026
791de63
fix(providers): stream text promptly and cancel blocked input
Shadowfetchapps Sep 27, 2026
9c55e86
feat(local): show recorded startup phases in tasks and Compare
Shadowfetchapps Sep 27, 2026
369e31c
feat(timing): separate task costs and disclose local model reuse
Shadowfetchapps Sep 27, 2026
4935ff4
fix(installer): preserve prior runtime across interrupted replacement
Shadowfetchapps Sep 27, 2026
58790fd
fix(providers): bound active run time and aggregate output
Shadowfetchapps Sep 27, 2026
6de8f34
fix(local): bind runtime reuse to files and record model provenance
Shadowfetchapps Sep 27, 2026
28826c0
fix(release): require scoped verification receipts before publication
Shadowfetchapps Sep 27, 2026
50561e7
test(local): qualify installed models with isolated coding tasks
Shadowfetchapps Sep 27, 2026
89f9709
fix(engine): bound unfinished promises and honor native steering
Shadowfetchapps Sep 27, 2026
ba58fc4
docs: record repeated local coding results and remaining gaps
Shadowfetchapps Sep 27, 2026
daa8fc9
fix(verification): preserve task receipts through terminal failures
Shadowfetchapps Sep 27, 2026
1052fac
fix(providers): bridge permissions and retain current tool evidence
Shadowfetchapps Sep 27, 2026
d663045
fix(ui): refresh completed tool labels from current inputs
Shadowfetchapps Sep 27, 2026
ffea0a8
fix(acp): retain bounded raw tool output and normalized commands
Shadowfetchapps Sep 27, 2026
d5f1fe7
perf(ui): parse long Markdown responses in a bounded worker
Shadowfetchapps Sep 27, 2026
a7347f4
test(native): qualify worker assets and replay typed vendor receipts
Shadowfetchapps Sep 27, 2026
8737291
fix(installer): recover recorded pre-activation interruptions
Shadowfetchapps Sep 27, 2026
7f89a19
style(brand): apply the approved ShadowCode logo and app icons
Shadowfetchapps Sep 27, 2026
b18fd8c
fix(local): qualify the bundled Hermes tool-use template
Shadowfetchapps Sep 27, 2026
098672f
fix(local): accept the pinned Hermes lexer template identity
Shadowfetchapps Sep 27, 2026
c180da0
fix(native): backport the verified GLib iterator correction
Shadowfetchapps Sep 27, 2026
59df9f9
docs: record provider, recovery, branding and native release evidence
Shadowfetchapps Sep 27, 2026
53fec09
fix(providers): bind Cursor approvals and retain execution provenance
Shadowfetchapps Sep 27, 2026
b49d930
fix(providers): reconcile live protocol updates before approvals
Shadowfetchapps Sep 27, 2026
5c7f30f
fix(providers): reset protocol diagnostics after valid approvals
Shadowfetchapps Sep 27, 2026
04cd7c2
test(compare): qualify concurrent mutations and cross-project cancell…
Shadowfetchapps Sep 27, 2026
8125935
fix(ui): restore the opener after autofocus dialogs close
Shadowfetchapps Sep 27, 2026
0a78dc5
test(acp): negotiate valid protocol in MCP forwarding fixtures
Shadowfetchapps Sep 27, 2026
d7ee7f1
test(goals): require configured checks in routing acceptance
Shadowfetchapps Sep 27, 2026
c756f8a
ci(native): require embedded worker and preserve owned cleanup
Shadowfetchapps Sep 27, 2026
19bcfa7
feat(release): verify signed identity and stage authenticated snapshots
Shadowfetchapps Sep 27, 2026
c1f436b
test(goals): configure acceptance within the small tester budget
Shadowfetchapps Sep 27, 2026
985d48f
fix(security): detect short private keys in complete staged files
Shadowfetchapps Sep 27, 2026
e80b338
fix(security): report command sandbox scope and effective network limits
Shadowfetchapps Sep 27, 2026
cb9c880
refactor(release): share trusted signature verification routines
Shadowfetchapps Sep 27, 2026
b4a6550
fix(worktrees): recover failed disposal from quarantined ownership jo…
Shadowfetchapps Sep 27, 2026
4970345
feat(release): authenticate signed artifacts in separate publish jobs
Shadowfetchapps Sep 27, 2026
415bdcb
fix(ui): preserve pending approvals when reopening selected conversation
Shadowfetchapps Sep 27, 2026
a3aa4e5
feat(installer): verify signed snapshots and retain durable release r…
Shadowfetchapps Sep 27, 2026
7aaea06
fix(models): account reported usage from failed native coding attempts
Shadowfetchapps Sep 27, 2026
2c2ff1f
test(tui): wait for rendered approval readiness before opening dialog
Shadowfetchapps Sep 27, 2026
d295a03
docs: clarify terminal race reproduction and integrated result
Shadowfetchapps Sep 27, 2026
e9f6a1d
fix(ui): show verification and tool outcomes truthfully
Shadowfetchapps Sep 27, 2026
e66f356
fix(engine): require action follow-through and scoped inspection evid…
Shadowfetchapps Sep 27, 2026
e804e83
fix(tasks): record command prompts only once
Shadowfetchapps Sep 27, 2026
b66bb0e
fix(security): redact complete private key payloads
Shadowfetchapps Sep 27, 2026
d832dfc
test(recovery): observe held requests before killing the engine
Shadowfetchapps Sep 27, 2026
fd39f5a
test(ui): require neutral status for unverified command evidence
Shadowfetchapps Sep 27, 2026
38d677a
fix(ui): bind execution receipts to exact tool events
Shadowfetchapps Sep 27, 2026
523754e
fix(engine): preserve execution identity and reject duplicate tool gr…
Shadowfetchapps Sep 27, 2026
3ea99d3
docs: record current execution and native acceptance evidence
Shadowfetchapps Sep 27, 2026
01a4427
test(models): require duplicate ID refusal in chaos coverage
Shadowfetchapps Sep 27, 2026
68ae3e3
fix(worktrees): scope ownership and protect active checkouts
Shadowfetchapps Sep 27, 2026
917ffd4
fix(compare): preserve index timestamps for faithful snapshots
Shadowfetchapps Sep 27, 2026
6ef4b40
fix(worktrees): return persisted discard acknowledgement
Shadowfetchapps Sep 27, 2026
acbdf59
feat(editor): add revision-aware file editing and draft review
Shadowfetchapps Sep 27, 2026
b4d671e
fix(editor): keep drawer open on editor Escape
Shadowfetchapps Sep 27, 2026
485ff76
feat(editor): recover acknowledged drafts across restarts
Shadowfetchapps Sep 27, 2026
01b705a
test(worktrees): retry transient admission before asserting capacity
Shadowfetchapps Sep 27, 2026
078d453
feat(diagnostics): preview bounded doctor export before saving
Shadowfetchapps Sep 27, 2026
61fbf7b
fix(diagnostics): place preview before long health results
Shadowfetchapps Sep 27, 2026
c543a6c
Coalesce superseded editor recovery writes
Shadowfetchapps Sep 27, 2026
e44cf5d
Review competing editor recovery drafts
Shadowfetchapps Sep 27, 2026
99cbdc0
Reset editor recovery revision after record deletion
Shadowfetchapps Sep 27, 2026
417326f
Record native editor recovery race qualification
Shadowfetchapps Sep 27, 2026
b431626
Require offline clean-host package qualification
Shadowfetchapps Sep 27, 2026
fb89c50
Verify first packaged GUI window in clean host
Shadowfetchapps Sep 27, 2026
1cdfd8c
Prove repository guidance cannot grant read-only writes
Shadowfetchapps Sep 27, 2026
4e3b228
Guide first-run users to the model picker
Shadowfetchapps Sep 27, 2026
971d9bf
Refresh provider capabilities after runtime replacement
Shadowfetchapps Sep 27, 2026
94df2d9
Add manual model refresh to open picker
Shadowfetchapps Sep 27, 2026
938cb7d
Verify open picker forces provider refresh
Shadowfetchapps Sep 27, 2026
aad3b4e
Preserve selected code when indenting in file editor
Shadowfetchapps Sep 27, 2026
3744027
Record editor and picker usability qualification
Shadowfetchapps Sep 27, 2026
930530f
Record exact package clean-host qualification
Shadowfetchapps Sep 27, 2026
c60ec98
Qualify first-run picker actions in packaged window
Shadowfetchapps Sep 27, 2026
e52049c
Ship validated AppStream metadata in native packages
Shadowfetchapps Sep 27, 2026
d75a0e2
Qualify live three-model Compare cancellation
Shadowfetchapps Sep 27, 2026
e777f09
Qualify real GGUF inference in both clean-host packages
Shadowfetchapps Sep 27, 2026
93a9a3a
Recover unchanged installer activation boundary
Shadowfetchapps Sep 27, 2026
79583fa
Scope opt-in live Compare test in release gate
Shadowfetchapps Sep 27, 2026
d9f9ee5
Restore desktop integration on handled installer failures
Shadowfetchapps Sep 27, 2026
8a33cb2
Recover exact AppImage link swap after crash
Shadowfetchapps Sep 27, 2026
f60bfb5
Qualify offline three-model Compare completion
Shadowfetchapps Sep 27, 2026
0e2731f
Nudge code agents out of redundant inspection loops
Shadowfetchapps Sep 27, 2026
0445783
Make clean-host package probe portable to Docker
Shadowfetchapps Sep 27, 2026
2dce4b6
Keep composer controls inside the available panel width
Shadowfetchapps Sep 27, 2026
120bcc0
Keep paused conversations live through resume
Shadowfetchapps Sep 27, 2026
5eed56e
Capture working edits hidden by Git index flags
Shadowfetchapps Sep 27, 2026
2bf198c
Accept regular desktop launchers from fresh AppImage bundles
Shadowfetchapps Sep 27, 2026
f11631d
Refuse AppImage launch after extraction output failures
Shadowfetchapps Sep 27, 2026
8c60413
Bound login output draining and honor cancellation
Shadowfetchapps Sep 27, 2026
71e694a
Keep unverified Codex billing distinct from subscriptions
Shadowfetchapps Sep 27, 2026
c9cc529
Make quota fixture establish subscription identity
Shadowfetchapps Sep 27, 2026
16e662c
Reject incompatible ACP runtimes during model discovery
Shadowfetchapps Sep 27, 2026
1445b49
Preserve native workspace observations through task failure
Shadowfetchapps Sep 27, 2026
0f8222a
Separate local template hints from runtime capability reports
Shadowfetchapps Sep 27, 2026
ac0510a
Bind release verification receipts to unchanged source
Shadowfetchapps Sep 27, 2026
9adeff4
Show available models while provider discovery continues
Shadowfetchapps Sep 27, 2026
3fcc143
Update local probe example for template hint metadata
Shadowfetchapps Sep 27, 2026
835362c
Bound release output drain after gate process exit
Shadowfetchapps Sep 27, 2026
3bb70f8
Follow sign-in cancellation through confirmed completion
Shadowfetchapps Sep 27, 2026
016d01a
Own private X11 test sessions through final cleanup
Shadowfetchapps Sep 27, 2026
2016fdd
Drain login probes and serialize cancelled account publication
Shadowfetchapps Sep 27, 2026
4e5d830
Advise on repeated search results using visible file evidence
Shadowfetchapps Sep 27, 2026
ddc97d1
Bind Codex task events to the active thread and turn
Shadowfetchapps Sep 27, 2026
1382243
Match native picker checks to reported vendor billing
Shadowfetchapps Sep 28, 2026
f03acd6
Bound parallel process discovery in native session cleanup
Shadowfetchapps Sep 28, 2026
16c61d7
Clear local runtime readiness after an observed child exit
Shadowfetchapps Sep 28, 2026
a467c00
Reject invalid local runtime readiness responses
Shadowfetchapps Sep 28, 2026
1ba135f
Verify Compare preserves checked results after a lane fails
Shadowfetchapps Sep 28, 2026
ffd1268
Verify active runtime failure preserves edits and permits explicit retry
Shadowfetchapps Sep 28, 2026
52d8b77
Report ACP billing only from observed account evidence
Shadowfetchapps Sep 28, 2026
4ef6e69
Protect editor drafts and workspace mutations during Compare
Shadowfetchapps Sep 28, 2026
69c4804
Complete editor, context preview, checks and recoverable sign-in flows
Shadowfetchapps Sep 28, 2026
b8c97e7
Capture exact vendor test receipts in live coding qualification
Shadowfetchapps Sep 28, 2026
6e7612c
Accept the exact CI AppImage version field during launcher normalization
Shadowfetchapps Sep 28, 2026
61b187a
Qualify native endurance and final packages with bounded owned cleanup
Shadowfetchapps Sep 28, 2026
1d0e2ea
Document current workflows and exact release qualification evidence
Shadowfetchapps Sep 28, 2026
44ba1aa
Honor explicit Wayland selection and record physical desktop qualific…
Shadowfetchapps Sep 28, 2026
7a38fcc
Prepare ShadowCode 0.33.0 and provision public release trust
Shadowfetchapps Sep 28, 2026
f14287b
Record frozen 0.33.0 package preflight and align action documentation
Shadowfetchapps Sep 28, 2026
9e385cb
Handle proven process exit during native session discovery
Shadowfetchapps Sep 28, 2026
e15c448
Prepare 0.33.1 with immutable runtime build inputs
Shadowfetchapps Sep 28, 2026
d4d9aa8
Document signed 0.33.1 release and retry delayed draft visibility
Shadowfetchapps Sep 28, 2026
c04bdc6
Refresh visible check evidence after workspace edits
Shadowfetchapps Sep 28, 2026
503c2e2
Composer: less-frequent controls under More; richer AppStream metadata
Shadowfetchapps Sep 28, 2026
15e5ec4
Docs: More menu in README, user guide and Compare guide; changelog
Shadowfetchapps Sep 28, 2026
b800c1f
Batch verification refresh for visible task summaries
Shadowfetchapps Sep 28, 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
  •  
  •  
  •  
12 changes: 9 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,18 @@ jobs:
with:
node-version: '22'
- name: No credentials in tracked files
run: node scripts/check-secrets.mjs
run: |
node scripts/check-secrets.mjs
node --test scripts/test-check-secrets.mjs
- name: Verify publisher authentication and private release snapshots
run: node --test scripts/test-native-release-auth.mjs
- name: Managed llama.cpp packaging (pins, notices, relative links, deb repack)
run: node --test scripts/test-llama-runtime.mjs
run: node --test scripts/test-llama-runtime.mjs scripts/test-llama-build-inputs.mjs
- name: Packaging PATH ignores host node hijacks
run: node --test scripts/test-native-packaging-env.mjs
- name: Pinned-source failures and mirror recovery
run: node --test scripts/test-native-source-fetch.mjs
- name: Installer replacement, runtime swap and checksum refusal
run: bash scripts/test-install-appimage.sh
run: |
node --test --test-reporter=tap scripts/test-install-auth.mjs
bash scripts/test-install-appimage.sh
61 changes: 51 additions & 10 deletions .github/workflows/native.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
push:
branches: [main]
pull_request:
paths: ['native/**', 'src-tauri/**', 'ui/**', 'licenses/native/**', 'packaging/native-runtime/**', 'packaging/native-app-run.sh', 'packaging/llama.cpp/**', 'packaging/shadow-agent.desktop', 'tools/llama.cpp.pin', 'tools/glslc-flatpak.sh', 'scripts/build-llama.cpp.sh', 'scripts/*llama*.mjs', 'scripts/install-appimage.sh', 'scripts/test-install-appimage.sh', 'scripts/*native*.mjs', 'scripts/native-packaging-env.sh', 'scripts/native-mcp-peer/**', 'Cargo.toml', 'Cargo.lock', '.github/workflows/native.yml', '.github/workflows/release.yml']
paths: ['native/**', 'vendor/**', 'scripts/fixtures/native-glib-variant.rs', 'scripts/fixtures/native-runtime-write-errors.c', 'src-tauri/**', 'ui/**', 'licenses/native/**', 'packaging/native-runtime/**', 'packaging/native-app-run.sh', 'packaging/llama.cpp/**', 'packaging/shadow-agent.desktop', 'tools/llama.cpp.pin', 'tools/glslc-flatpak.sh', 'scripts/build-llama.cpp.sh', 'scripts/*llama*.mjs', 'scripts/install-appimage.sh', 'scripts/install-release-state.sh', 'scripts/installer-auth-fixtures.mjs', 'scripts/test-install-auth.mjs', 'release/**', 'scripts/test-install-appimage.sh', 'scripts/test-clean-host-*.mjs', 'scripts/clean-host-*.mjs', 'scripts/clean-host-mcp-smoke.sh', 'scripts/fixtures/native-*.mjs', 'scripts/clean-host-runtime.Dockerfile', 'scripts/clean-host-gui-smoke.sh', 'scripts/*native*.mjs', 'scripts/publisher-fixtures.mjs', 'scripts/test-publisher-auth.mjs', 'scripts/native-packaging-env.sh', 'scripts/native-release-auth-lib.sh', 'scripts/verify-native-release.sh', 'scripts/check-secrets.mjs', 'scripts/test-check-secrets.mjs', 'scripts/native-mcp-peer/**', 'Cargo.toml', 'Cargo.lock', '.github/workflows/native.yml', '.github/workflows/release.yml']
permissions:
contents: read
jobs:
Expand All @@ -20,19 +20,36 @@ jobs:
node-version: '22'
cache: npm
cache-dependency-path: ui/package-lock.json
- name: Native window dependencies
run: sudo apt-get update && sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev librsvg2-dev libayatana-appindicator3-dev libasound2-dev patchelf webkit2gtk-driver xvfb appstream dbus-daemon dbus-bin
- name: Test release staging and immutable retry behavior
run: node --test scripts/test-native-release.mjs scripts/test-native-release-verification.mjs scripts/test-publisher-auth.mjs scripts/test-native-release-signing.mjs scripts/test-native-test-session.mjs scripts/test-clean-host-mcp-receipt.mjs scripts/test-clean-host-container.mjs scripts/test-native-app-run.mjs scripts/test-llama-build-inputs.mjs && node scripts/test-native-process-ownership.mjs
- name: Verify publisher authentication and private release snapshots
run: node --test scripts/test-native-release-auth.mjs scripts/test-check-secrets.mjs
- name: Package version
run: echo "VERSION=$(node -p "require('./src-tauri/tauri.conf.json').version")" >> "$GITHUB_ENV"
- name: Native window dependencies
run: sudo apt-get update && sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev librsvg2-dev libayatana-appindicator3-dev libasound2-dev patchelf webkit2gtk-driver xvfb
- name: Managed llama.cpp build dependencies
run: sudo apt-get install -y cmake ninja-build libssl-dev libvulkan-dev glslc spirv-headers
- run: npm --prefix ui ci && npm --prefix ui run build && npm --prefix ui test
- name: Install pinned Rust toolchain
run: rustup toolchain install 1.95.0 --profile minimal --component rustfmt --component clippy
- name: Verify the exact GLib backport and optimized iterator behavior
run: |
rustfmt +1.95.0 --check --edition 2021 scripts/fixtures/native-glib-variant.rs
node --test --test-reporter=tap scripts/test-native-glib-backport.mjs
node scripts/test-native-glib-variant.mjs
- run: cargo +1.95.0 fmt --all --check
- run: cargo +1.95.0 clippy --workspace --all-targets --locked -- -D warnings
- run: cargo +1.95.0 build -p shadowcode-desktop --locked
- run: cargo +1.95.0 test --workspace --locked
- run: cargo +1.95.0 test --workspace --locked -- --skip worktrees::cleanup::tests::actual_built_project_cleanup_is_bounded_and_completes
- name: Qualify cleanup over actual built UI dependencies and output
run: node scripts/native-release-verification.mjs run built-project-cleanup
- name: Preserve built-project cleanup diagnostics
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: built-project-cleanup-diagnostics
path: artifacts/built-project-cleanup
- name: Exercise the native CLI without a display
run: node scripts/test-native-cli.mjs
- name: Stress repeated native tasks, cancellation, output and cleanup
Expand Down Expand Up @@ -68,12 +85,20 @@ jobs:
artifacts/native-tui
- run: cargo +1.95.0 install tauri-driver --version 2.0.6 --locked
- name: Exercise the native window
run: xvfb-run -a -s '-screen 0 1440x1100x24' dbus-run-session -- node scripts/test-native-desktop.mjs
run: node scripts/run-native-x11.mjs node scripts/test-native-desktop.mjs
- name: Exercise the embedded Markdown worker under the native security policy
run: node scripts/run-native-x11.mjs node scripts/test-native-markdown.mjs
- name: Qualify 100 sequential tasks through the native window
run: node scripts/native-release-verification.mjs run native-endurance
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
if: always()
with:
name: native-window-diagnostics
path: artifacts/native
path: |
artifacts/native
artifacts/native-markdown
artifacts/native-endurance
artifacts/native-x11
- run: cargo +1.95.0 build --release -p shadowcode-core --examples --locked
- name: Check pinned-source failures and mirror recovery
run: node --test scripts/test-native-source-fetch.mjs
Expand All @@ -90,17 +115,25 @@ jobs:
- name: Build the managed llama.cpp runtime (Vulkan + all CPU variants)
run: bash scripts/build-llama.cpp.sh --no-user-install
- name: Check the managed runtime packaging steps
run: node --test scripts/test-llama-runtime.mjs
run: node --test scripts/test-llama-runtime.mjs scripts/test-native-desktop-metadata.mjs
- name: Build native development packages with dependency notices
run: node scripts/build-native.mjs
- name: Inspect both packages
run: node scripts/check-native-package.mjs "target/release/bundle/appimage/ShadowCode_${VERSION}_amd64.AppImage" "target/release/bundle/deb/ShadowCode_${VERSION}_amd64.deb"
- name: Build runtime-only clean-host qualification image
run: docker build -f scripts/clean-host-runtime.Dockerfile -t shadowcode-clean-runtime:ci scripts
- name: Install and first-launch both packages in an offline clean host
run: node scripts/test-clean-host-packages.mjs "target/release/bundle/appimage/ShadowCode_${VERSION}_amd64.AppImage" "target/release/bundle/deb/ShadowCode_${VERSION}_amd64.deb" artifacts/native-package/SHA256SUMS
- name: Reject AppImage extraction writes that fail
run: node scripts/test-native-runtime-write-errors.mjs
- name: Rebuild the shipped runtime sources without network access
run: node scripts/test-native-runtime-sources.mjs
- name: Exercise concurrent AppImage extraction and shutdown
run: node scripts/test-native-runtime.mjs
- name: Verify installer runtime swap and checksum refusal
run: bash scripts/test-install-appimage.sh
run: |
node --test --test-reporter=tap scripts/test-install-auth.mjs
bash scripts/test-install-appimage.sh
- name: Exercise the packaged CLI without a display
env:
SHADOW_DESKTOP_BINARY: ${{ github.workspace }}/target/release/bundle/appimage/ShadowCode_${{ env.VERSION }}_amd64.AppImage
Expand All @@ -119,7 +152,13 @@ jobs:
SHADOW_DESKTOP_ARGS: '["--appimage-extract-and-run","ui"]'
SHADOW_NATIVE_DEFAULT_PROFILE: '1'
SHADOW_NATIVE_ARTIFACTS: artifacts/native-package/window
run: xvfb-run -a -s '-screen 0 1440x1100x24' dbus-run-session -- node scripts/test-native-desktop.mjs
run: node scripts/run-native-x11.mjs node scripts/test-native-desktop.mjs
- name: Exercise the packaged Markdown worker under its native security policy
env:
SHADOW_DESKTOP_BINARY: ${{ github.workspace }}/target/release/bundle/appimage/ShadowCode_${{ env.VERSION }}_amd64.AppImage
SHADOW_DESKTOP_ARGS: '["--appimage-extract-and-run"]'
SHADOW_NATIVE_ARTIFACTS: artifacts/native-package/markdown
run: node scripts/run-native-x11.mjs node scripts/test-native-markdown.mjs
- name: Exercise the packaged native MCP server
env:
SHADOW_DESKTOP_BINARY: ${{ github.workspace }}/target/release/bundle/appimage/ShadowCode_${{ env.VERSION }}_amd64.AppImage
Expand All @@ -143,7 +182,9 @@ jobs:
if: always()
with:
name: native-package-diagnostics
path: artifacts/native-package
path: |
artifacts/native-package
artifacts/native-x11
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: native-linux-development
Expand Down
Loading
Loading