Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
249 commits
Select commit Hold shift + click to select a range
ac15bfe
feat: add vana connect cli
tnunamak Mar 12, 2026
ed19fe2
chore: vendor playwright runner into cli runtime
tnunamak Mar 13, 2026
ff55fb0
docs: add cli install path research
tnunamak Mar 13, 2026
400bcfc
feat(cli): add SEA artifact build pipeline
tnunamak Mar 13, 2026
9b01613
feat(cli): add installer and multi-platform release assets
tnunamak Mar 13, 2026
d9edefd
test(cli): smoke test unix installer
tnunamak Mar 13, 2026
9e46d10
fix(cli): restore installed binary connector flows
tnunamak Mar 13, 2026
6950100
docs(cli): add final product spec
tnunamak Mar 13, 2026
120f185
refactor(cli): remove run-connector from active runtime path
tnunamak Mar 13, 2026
72e24dd
feat(runtime): add in-process playwright host
tnunamak Mar 13, 2026
07abede
refactor(runtime): align setup with in-process host
tnunamak Mar 13, 2026
33e7ba3
refactor(runtime): package standalone app payload
tnunamak Mar 13, 2026
5064e99
test(ci): add windows installer smoke
tnunamak Mar 13, 2026
58c91d3
fix(ci): unblock windows and intel mac builds
tnunamak Mar 13, 2026
e3412ff
fix(installer): define windows copy helper before use
tnunamak Mar 13, 2026
83522c0
chore(ci): update GitHub actions runtime
tnunamak Mar 13, 2026
1d2cf51
chore(ci): normalize workflow action runtime
tnunamak Mar 13, 2026
3e658f0
test(cli): cover runtime status path
tnunamak Mar 13, 2026
0ba7946
fix(release): publish built npm package
tnunamak Mar 13, 2026
1e1bc0a
fix(ci): support npm pack check on windows
tnunamak Mar 13, 2026
ea26c9a
fix(release): validate sea artifacts in ci
tnunamak Mar 13, 2026
190e1d6
fix(installer): self-check installed launcher
tnunamak Mar 13, 2026
e6c48da
fix(release): remove stale package-lock reference
tnunamak Mar 13, 2026
1188bec
fix(ci): support npm pack check on windows
tnunamak Mar 14, 2026
9f79983
chore(ci): update artifact actions
tnunamak Mar 14, 2026
7340073
docs(readme): document prerelease install path
tnunamak Mar 14, 2026
57b84fe
docs(readme): steer branch testers to prerelease
tnunamak Mar 14, 2026
8d5876b
feat(release): publish stable branch prerelease
tnunamak Mar 14, 2026
d793797
feat(cli): bridge legacy connectors for humans
tnunamak Mar 14, 2026
367ac08
test(release): add hosted installer smoke
tnunamak Mar 14, 2026
5456c97
test(release): verify published installer flows
tnunamak Mar 14, 2026
9a72ce1
chore(ci): cancel superseded branch runs
tnunamak Mar 14, 2026
185157c
fix(installer): retry release asset downloads
tnunamak Mar 14, 2026
4b1ab32
feat(release): generate package-manager metadata
tnunamak Mar 14, 2026
301101f
fix(release): upload only intended release assets
tnunamak Mar 14, 2026
59211c8
fix(release): call asset collector directly in workflows
tnunamak Mar 14, 2026
4522f2c
feat(docs): add homebrew install path
tnunamak Mar 14, 2026
f421ec8
fix(release): generate working homebrew formula
tnunamak Mar 14, 2026
527f456
fix(release): prune stale branch prerelease assets
tnunamak Mar 14, 2026
22ef4ab
fix(release): sign macos launcher and correct canary formula version
tnunamak Mar 14, 2026
ad46830
fix(runtime): honor setData result completions
tnunamak Mar 14, 2026
9987f1d
fix(ci): format sea artifact check script
tnunamak Mar 14, 2026
5ce4599
feat(cli): add guided connect and data inspect
tnunamak Mar 14, 2026
d26c23f
fix(cli): use registry labels in data commands
tnunamak Mar 14, 2026
46bbc76
docs(cli): document guided connect and data commands
tnunamak Mar 14, 2026
d23fbf5
feat(cli): add renderer foundation for human mode
tnunamak Mar 14, 2026
320bfb5
feat(cli): strengthen connect success summary
tnunamak Mar 14, 2026
3ad043c
fix(cli): return json error when source is missing
tnunamak Mar 14, 2026
18332a5
fix(cli): soften saved-session copy
tnunamak Mar 14, 2026
58ce1aa
feat(cli): improve connect phase framing
tnunamak Mar 14, 2026
ee85681
fix(cli): ignore epipe from piped output
tnunamak Mar 14, 2026
d4dbf23
fix(cli): ignore epipe in launcher entrypoint
tnunamak Mar 14, 2026
f2e0f07
test(cli): cover connect success summary
tnunamak Mar 14, 2026
11531bd
feat(cli): add data summary to json output
tnunamak Mar 14, 2026
126ebe4
test(release): cover piped launcher output
tnunamak Mar 14, 2026
32c01c1
feat(cli): prioritize mature sources in listings
tnunamak Mar 14, 2026
c9bc881
docs(readme): clarify cli automation examples
tnunamak Mar 14, 2026
a8eb441
feat(cli): deepen data and status inspection
tnunamak Mar 14, 2026
994c128
feat(cli): improve data and status surfaces
tnunamak Mar 14, 2026
351f32d
feat(cli): polish static surfaces and scaffold demos
tnunamak Mar 14, 2026
ac26743
test(cli): add human transcript coverage
tnunamak Mar 14, 2026
c921264
feat(cli): tighten connect fallback paths
tnunamak Mar 14, 2026
812e11f
chore(cli): scrub demo fixture data
tnunamak Mar 14, 2026
9368536
chore(cli): automate release and transcript workflows
tnunamak Mar 14, 2026
8ad2d87
fix(scripts): polish release automation
tnunamak Mar 14, 2026
aecdb1c
feat(demos): wire vhs demo workflow
tnunamak Mar 14, 2026
a9b061d
fix(scripts): watch pushed branch head by default
tnunamak Mar 14, 2026
eda26e6
feat(ci): publish demo preview artifacts
tnunamak Mar 14, 2026
1f6922b
feat(release): attach demo preview assets
tnunamak Mar 14, 2026
c3dec4b
fix(demos): remove local repo path assumptions
tnunamak Mar 14, 2026
fb2d1f1
fix(demos): reseed fixtures before transcript capture
tnunamak Mar 14, 2026
eb07360
feat(demos): show real user commands
tnunamak Mar 14, 2026
18b86f2
feat(cli): strengthen success moment
tnunamak Mar 14, 2026
969d364
fix(release): include demo preview assets
tnunamak Mar 14, 2026
bbb33df
fix(demos): render gif preview assets
tnunamak Mar 14, 2026
45fde4a
feat(demos): publish and verify preview media
tnunamak Mar 14, 2026
5fa6718
fix(demos): render real CLI output
tnunamak Mar 14, 2026
6a75d05
fix(cli): shorten home-relative status paths
tnunamak Mar 14, 2026
f0a51b2
feat(cli): polish guided picker and vhs pacing
tnunamak Mar 14, 2026
14fb348
chore(cli): refine unsupported-source guidance
tnunamak Mar 14, 2026
04cb27e
feat(cli): polish static surfaces and command cues
tnunamak Mar 14, 2026
26b25de
docs(cli): surface preview and slow demo pacing
tnunamak Mar 14, 2026
adbd7ae
feat(cli): strengthen success rendering
tnunamak Mar 14, 2026
16d8963
feat(cli): polish connect cancellations
tnunamak Mar 14, 2026
9d5bf70
feat(cli): surface connector progress updates
tnunamak Mar 14, 2026
07bd768
feat(cli): surface connector status updates
tnunamak Mar 14, 2026
b91e4a2
feat(cli): refine live progress narration
tnunamak Mar 14, 2026
c175ab8
feat(cli): add deterministic connect success demos
tnunamak Mar 14, 2026
8ef6088
feat(cli): refine static surface hierarchy
tnunamak Mar 14, 2026
2a9a422
feat(cli): add guided next steps to status
tnunamak Mar 14, 2026
2a01106
feat(cli): polish connect narrative flow
tnunamak Mar 14, 2026
0014dd6
feat(cli): improve data and status guidance
tnunamak Mar 14, 2026
214ad23
feat(cli): refine discovery and composability
tnunamak Mar 14, 2026
46dcdd4
feat(cli): polish guided connect entry
tnunamak Mar 14, 2026
0afda69
feat(cli): strengthen connect success payoff
tnunamak Mar 14, 2026
9939464
docs(cli): refresh execution guidance
tnunamak Mar 14, 2026
a862ad9
feat(cli): deepen static surface rhythm
tnunamak Mar 14, 2026
2f47897
feat(cli): soften badge styling
tnunamak Mar 14, 2026
3d92ce6
feat(cli): prioritize source readiness badges
tnunamak Mar 14, 2026
4d4a664
feat(cli): simplify status grouping
tnunamak Mar 14, 2026
57d3a53
feat(cli): align renderer palette with vana
tnunamak Mar 14, 2026
cfa488c
feat(cli): polish setup and transcript surfaces
tnunamak Mar 14, 2026
be49d52
feat(cli): slow README demo pacing
tnunamak Mar 14, 2026
0fabbb5
feat(cli): add setup next steps
tnunamak Mar 14, 2026
f39cd0d
docs(cli): sync transcript lists
tnunamak Mar 14, 2026
666a387
feat(cli): improve data follow-through
tnunamak Mar 14, 2026
de18a9a
feat(cli): harden demos and status entry
tnunamak Mar 14, 2026
d643a43
feat(cli): label key status and setup paths
tnunamak Mar 14, 2026
3f42788
feat(cli): make next steps more actionable
tnunamak Mar 14, 2026
83a6af4
feat(cli): recommend a concrete source after setup
tnunamak Mar 14, 2026
cdaf0f7
feat(cli): prioritize data inspection after connect
tnunamak Mar 14, 2026
7122efa
feat(cli): sharpen connect and status summaries
tnunamak Mar 14, 2026
77fb65f
feat(cli): align saved-session wording across status
tnunamak Mar 14, 2026
96f78f7
fix(cli): handle legacy no-input flows cleanly
tnunamak Mar 14, 2026
0130f0c
chore(cli): add canonical local preflight
tnunamak Mar 14, 2026
04ac9e0
feat(cli): suggest a concrete source from status
tnunamak Mar 14, 2026
edf1d5c
test(cli): cover legacy no-input guidance
tnunamak Mar 14, 2026
b11891f
feat(cli): align terminal log rows
tnunamak Mar 14, 2026
4e5479a
feat(cli): deepen status and data guidance
tnunamak Mar 14, 2026
da61d3e
chore(demo): refresh transcripts and build-first capture
tnunamak Mar 14, 2026
dc7595e
docs(cli): refresh execution playbook state
tnunamak Mar 14, 2026
596f6a8
feat(cli): name connect failure states
tnunamak Mar 14, 2026
af4e6e0
feat(cli): group guided connect choices
tnunamak Mar 14, 2026
acb4983
feat(cli): add version and doctor surfaces
tnunamak Mar 14, 2026
540169b
docs(cli): add operational polish batch
tnunamak Mar 14, 2026
469d44f
feat(cli): add overview lines to static surfaces
tnunamak Mar 14, 2026
d1da70d
feat(cli): polish help and doctor contracts
tnunamak Mar 14, 2026
d7207b9
feat(cli): improve manual-step no-input guidance
tnunamak Mar 14, 2026
fdf1323
feat(cli): strengthen success and data next steps
tnunamak Mar 14, 2026
aa4ab2a
test(cli): cover human no-input input-required flow
tnunamak Mar 14, 2026
ce4ae88
chore(demo): add connect no-input transcript
tnunamak Mar 14, 2026
c2f441a
test(cli): validate json output with schemas
tnunamak Mar 14, 2026
f6f868d
feat(cli): add schemas for sources and data json
tnunamak Mar 14, 2026
6c4f58f
feat(cli): expose doctor paths in json
tnunamak Mar 14, 2026
513f668
feat(cli): add schemas for common json errors
tnunamak Mar 14, 2026
857b2c6
feat(cli): expose release channel in status and doctor
tnunamak Mar 14, 2026
8740a04
feat(release): verify homebrew formula sync
tnunamak Mar 14, 2026
7254b52
feat(cli): tighten event stream schemas
tnunamak Mar 14, 2026
32d5688
feat(cli): add lifecycle guidance to doctor
tnunamak Mar 14, 2026
d589a6e
feat(cli): expand doctor diagnostics
tnunamak Mar 14, 2026
4ff3fd0
chore(demo): add session reuse transcript
tnunamak Mar 14, 2026
c5c8ebb
feat(cli): add json summaries for status and sources
tnunamak Mar 14, 2026
79a6add
feat(cli): add json summaries to data list
tnunamak Mar 14, 2026
02f01e1
chore(demo): add unsupported-source transcript
tnunamak Mar 14, 2026
dd3f75d
feat(cli): improve synced connect summary
tnunamak Mar 15, 2026
ea26755
feat(cli): handle cancelled connect prompts
tnunamak Mar 15, 2026
1090b37
feat(cli): suggest a source when one is unavailable
tnunamak Mar 15, 2026
936b40c
feat(cli): improve legacy connector human guidance
tnunamak Mar 15, 2026
297a495
feat(cli): handle headless legacy connector flows
tnunamak Mar 15, 2026
f89b72a
feat(cli): tighten event type schema
tnunamak Mar 15, 2026
727a4db
feat(cli): expose sync counts in status json
tnunamak Mar 15, 2026
ea1a481
feat(cli): refine status overview counts
tnunamak Mar 15, 2026
a956181
feat(cli): show help when no command is given
tnunamak Mar 15, 2026
3efed8b
feat(cli): show data help with no subcommand
tnunamak Mar 15, 2026
ce3d7cd
chore(demo): add help transcripts
tnunamak Mar 15, 2026
75b2c73
feat(cli): add interactive connect progress
tnunamak Mar 15, 2026
85c4126
feat(cli): finish local product polish and runtime hardening
tnunamak Mar 15, 2026
ab33661
fix(ci): make vhs rendering tolerant of cold starts
tnunamak Mar 15, 2026
1c4f268
fix(cli): preserve version metadata in packaged installs
tnunamak Mar 15, 2026
f5e2426
feat(demo): slow down public vhs tapes
tnunamak Mar 15, 2026
13228a8
feat(demo): tighten vhs framing
tnunamak Mar 15, 2026
4ee166c
feat(demo): show connect payoff in vhs
tnunamak Mar 15, 2026
38ea4e7
feat(cli): add dataset previews to summaries
tnunamak Mar 15, 2026
c97e45b
docs(cli): add consolidated review surface
tnunamak Mar 15, 2026
9dbbab4
docs(cli): add dedicated cli readme
tnunamak Mar 15, 2026
77d83e1
fix(cli): detect canary installer channel
tnunamak Mar 15, 2026
24db4ef
docs(cli): tighten cli readme and sdk links
tnunamak Mar 15, 2026
20b894a
docs(cli): refine cli product readme
tnunamak Mar 15, 2026
03023c2
docs(cli): focus readme on hero demo
tnunamak Mar 15, 2026
16ee003
docs(cli): consolidate transcripts and render all 19 VHS demos
tnunamak Mar 16, 2026
9e64ffe
docs(cli): polish VHS demos with Charm best practices
tnunamak Mar 16, 2026
25259b6
docs(cli): full-height VHS demos with audited readability
tnunamak Mar 16, 2026
5b99c0c
docs(cli): add agent-friendly integration research and roadmap
tnunamak Mar 16, 2026
05b904e
fix(cli): remove purple GIF border, shorten connector descriptions
tnunamak Mar 16, 2026
015c086
revert: keep fixture descriptions matching real registry
tnunamak Mar 16, 2026
3062cc5
docs(cli): add open issues tracking doc
tnunamak Mar 16, 2026
e0c4fb3
refactor(cli): use release URLs for all demo GIFs, stop tracking bina…
tnunamak Mar 16, 2026
aace882
docs(cli): restructure open issues by task type
tnunamak Mar 16, 2026
8f0e570
docs(cli): give depth to undersold issues
tnunamak Mar 16, 2026
46a02e4
docs: update CLI-OPEN-ISSUES with research agent findings
tnunamak Mar 16, 2026
effecb8
docs: rewrite personal server issue with full architecture analysis
tnunamak Mar 16, 2026
7c9708d
fix: pass env vars into Docker container for VHS rendering
tnunamak Mar 16, 2026
68eeb8d
fix: run VHS Docker container as host user to avoid root-owned files
tnunamak Mar 16, 2026
6340dd3
fix: update release asset assertions for individual GIF names
tnunamak Mar 16, 2026
4d3db52
fix: align destructive color to Vana brand dark-mode palette
tnunamak Mar 17, 2026
609ff8b
feat: add `vana server` command group for Personal Server management
tnunamak Mar 17, 2026
b5300ac
docs: add connector metadata utilization issue
tnunamak Mar 17, 2026
1c48791
feat: cli metadata features, collect command, and server sync
tnunamak Mar 17, 2026
685442f
fix: remove terminal-image from dependencies to fix sea builds
tnunamak Mar 17, 2026
9957258
refactor: clean up dead code and comments in cli
tnunamak Mar 17, 2026
153756e
feat: personal server integration with scope-aware ingest
tnunamak Mar 17, 2026
91c86b8
fix: show clean error on command typos instead of stack trace
tnunamak Mar 17, 2026
fa28050
fix: clean error handling for command typos
tnunamak Mar 17, 2026
1b77d87
feat: polish server UX, VHS tapes, transcripts, and quick wins
tnunamak Mar 17, 2026
79b43d1
docs: update CLI-OPEN-ISSUES with completed items
tnunamak Mar 17, 2026
b810d72
refactor: cli beauty pass — copy, density, and visual rhythm
tnunamak Mar 17, 2026
21746e0
docs: add CLI beauty audit findings
tnunamak Mar 17, 2026
3679603
refactor: compact status dashboard, user-facing auth labels
tnunamak Mar 17, 2026
36e7fd4
docs: replace internal CLI README with launch-ready version
tnunamak Mar 17, 2026
ae3a674
feat: phase-aware connect renderer with custom spinner
tnunamak Mar 17, 2026
5282a33
docs: add CLI design skill, connect flow design, and execution plan
tnunamak Mar 17, 2026
5029900
feat: connect flow redesign with ConnectRenderer
tnunamak Mar 17, 2026
39a29e6
refactor: consistency pass — unified visual language across all commands
tnunamak Mar 17, 2026
a29072e
refactor: semantic color pass across all commands
tnunamak Mar 17, 2026
0f7c305
fix: case-insensitive source matching, better checksum error message
tnunamak Mar 17, 2026
46c1e06
docs: update CLI transcripts for redesigned output
tnunamak Mar 17, 2026
42af479
fix: auto-retry on stale connector cache instead of asking user to rm…
tnunamak Mar 17, 2026
2f60390
refactor: information design pass — show data, not implementation
tnunamak Mar 17, 2026
0d9c53c
fix: auto-retry fetches from remote, bypassing stale local checkout
tnunamak Mar 17, 2026
00d0b27
fix: wrap array scope data in objects for Personal Server API
tnunamak Mar 17, 2026
f8bb3ba
fix: restore custom heartbeat bloom spinner, replace clack with inquirer
tnunamak Mar 17, 2026
e50679b
fix: resolve active scopes on success/fail before final paint
tnunamak Mar 17, 2026
2637a7d
refactor: vana-branded prompt theme, blue checkmarks
tnunamak Mar 17, 2026
ac24786
refactor: consistent semantic colors across CLI surface
tnunamak Mar 17, 2026
1ebc9ce
fix: auto-complete previous scope when new scope becomes active
tnunamak Mar 18, 2026
e9ef508
feat: server sync colors, consistent next steps, path tree tests
tnunamak Mar 18, 2026
0451f46
feat: skills registry, query functions, and vana skill command
tnunamak Mar 18, 2026
4f43978
feat: mcp server mode with 6 tools for agent integration
tnunamak Mar 18, 2026
32efd1c
fix: store results per-source instead of overwriting single file
tnunamak Mar 18, 2026
3f93573
chore: remove recipes skill (unverified agent-generated content)
tnunamak Mar 18, 2026
c076c43
refactor: rename ~/.dataconnect to ~/.vana everywhere
tnunamak Mar 18, 2026
53ff94f
feat: next-prompt skill for data-driven agent autonomy
tnunamak Mar 18, 2026
aa480a1
fix: allow data-show failure in transcript capture, update path regex
tnunamak Mar 18, 2026
1402a9c
fix: allow data-path and connect failures in transcript capture
tnunamak Mar 18, 2026
c772f96
chore: complete ~/.dataconnect to ~/.vana rename in fixtures, docs, s…
tnunamak Mar 18, 2026
4fd2d2d
refactor: single-line skill list, no paths in install output
tnunamak Mar 18, 2026
04b7591
docs: add new open issues from March 18 session
tnunamak Mar 18, 2026
b8a9118
docs: add agent UX and browser lock issues
tnunamak Mar 18, 2026
604cd3f
docs: non-tty ipc mode for agent auth, fix skill connection flow
tnunamak Mar 18, 2026
a781adb
feat: ipc mode for agent auth, stale lock cleanup, mcp auth check
tnunamak Mar 18, 2026
eae6634
docs: teach connect-data skill about --ipc mode
tnunamak Mar 18, 2026
f2f0d51
docs: teach connect-data skill the correct ipc flow
tnunamak Mar 18, 2026
03f1150
fix: increase ipc timeout to 30 minutes, add mcp testing issue
tnunamak Mar 18, 2026
0c6833f
docs: async cli research and design decision
tnunamak Mar 18, 2026
59dac47
feat: --detach, connection health, and vana schedule
tnunamak Mar 18, 2026
db32b5c
docs: add wave 2 research findings (auth expiry + daemon patterns)
tnunamak Mar 18, 2026
dca6254
fix: --detach uses --no-input, refuses without prior session
tnunamak Mar 18, 2026
492bcb9
docs: add release pipeline sync issue
tnunamak Mar 18, 2026
5f47989
fix: auto-sync homebrew formula, detect error results, show all sources
tnunamak Mar 18, 2026
f1408b2
fix: legacy data home detection, clean up shipped issues
tnunamak Mar 18, 2026
bbc7a90
fix: auto-migrate ~/.dataconnect to ~/.vana with symlink
tnunamak Mar 18, 2026
b84c681
refactor: rename skill command to skills (plural, matches sources)
tnunamak Mar 18, 2026
9323259
fix: show skill IDs in list so users know what to type
tnunamak Mar 18, 2026
30e4bd1
fix: detect auth mode from connector cache, not just local checkout
tnunamak Mar 18, 2026
877af8c
docs: split CLI readme to cli/README.md, update for current output
tnunamak Mar 18, 2026
a945364
fix: create reverse symlink ~/.dataconnect for DataConnect compat
tnunamak Mar 18, 2026
f9d1b05
docs: add personal data as agent context market research
tnunamak Mar 18, 2026
6dd3179
chore: organize docs, consolidate research, add datestamps
tnunamak Mar 18, 2026
6e8d679
fix: use HOMEBREW_SYNC_TOKEN for cross-repo formula dispatch
tnunamak Mar 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 70 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,22 @@ on:
- "connect/**"
- "examples/**"

concurrency:
group: ci-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
test:
runs-on: ubuntu-latest
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
strategy:
matrix:
node-version: [20, 22]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
Expand All @@ -30,3 +36,65 @@ jobs:
- run: pnpm lint:eslint
- run: pnpm format:check
- run: pnpm test

sea-smoke:
runs-on: ubuntu-latest
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: 25
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm clean
- run: pnpm build
- run: pnpm pack:check
- run: pnpm build:sea:smoke
- run: pnpm sea:check -- --artifact-dir artifacts/sea/vana-linux-x64 --archive artifacts/sea/vana-linux-x64.tar.gz --checksum artifacts/sea/vana-linux-x64.tar.gz.sha256 --platform linux --binary-name vana
- run: pnpm test:install:unix

sea-smoke-windows:
runs-on: windows-2022
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: 25
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm clean
- run: pnpm build
- run: pnpm pack:check
- run: pnpm build:sea -- --artifact-name vana-win32-x64 --platform win32 --arch x64 --archive-format zip --binary-name vana.exe
- run: pnpm sea:check -- --artifact-dir artifacts/sea/vana-win32-x64 --archive artifacts/sea/vana-win32-x64.zip --checksum artifacts/sea/vana-win32-x64.zip.sha256 --platform win32 --binary-name vana.exe
- run: pnpm test:install:windows

demo-preview:
runs-on: ubuntu-latest
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: 25
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm clean
- run: pnpm build
- run: pnpm build:sea -- --artifact-name vana-linux-x64 --platform linux --arch x64 --archive-format tar.gz --binary-name vana
- run: pnpm demo:transcripts
- run: pnpm demo:vhs
- uses: actions/upload-artifact@v7
with:
name: vana-demo-preview
path: |
docs/transcripts
docs/vhs
175 changes: 171 additions & 4 deletions .github/workflows/prerelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,103 @@ on:
- "examples/**"

permissions:
contents: read
contents: write

concurrency:
group: canary-${{ github.ref_name }}
cancel-in-progress: true

jobs:
build-sea:
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
strategy:
fail-fast: false
matrix:
include:
- runner: ubuntu-latest
platform: linux
arch: x64
archive_format: tar.gz
binary_name: vana
- runner: macos-15-intel
platform: darwin
arch: x64
archive_format: tar.gz
binary_name: vana
- runner: macos-14
platform: darwin
arch: arm64
archive_format: tar.gz
binary_name: vana
- runner: windows-2022
platform: win32
arch: x64
archive_format: zip
binary_name: vana.exe
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: 25
cache: pnpm
registry-url: https://registry.npmjs.org
- run: pnpm install --frozen-lockfile
- run: pnpm clean
- run: pnpm build
- run: pnpm pack:check
- run: pnpm build:sea -- --artifact-name vana-${{ matrix.platform }}-${{ matrix.arch }} --platform ${{ matrix.platform }} --arch ${{ matrix.arch }} --archive-format ${{ matrix.archive_format }} --binary-name ${{ matrix.binary_name }}
- run: pnpm sea:check -- --artifact-dir artifacts/sea/vana-${{ matrix.platform }}-${{ matrix.arch }} --archive artifacts/sea/vana-${{ matrix.platform }}-${{ matrix.arch }}.${{ matrix.archive_format }} --checksum artifacts/sea/vana-${{ matrix.platform }}-${{ matrix.arch }}.${{ matrix.archive_format }}.sha256 --platform ${{ matrix.platform }} --binary-name ${{ matrix.binary_name }}
- uses: actions/upload-artifact@v7
with:
name: vana-sea-${{ matrix.platform }}-${{ matrix.arch }}
path: |
artifacts/sea/vana-${{ matrix.platform }}-${{ matrix.arch }}
artifacts/sea/vana-${{ matrix.platform }}-${{ matrix.arch }}.${{ matrix.archive_format }}
artifacts/sea/vana-${{ matrix.platform }}-${{ matrix.arch }}.${{ matrix.archive_format }}.sha256
demo-preview:
runs-on: ubuntu-latest
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: 25
cache: pnpm
registry-url: https://registry.npmjs.org
- run: pnpm install --frozen-lockfile
- run: pnpm clean
- run: pnpm build
- run: pnpm build:sea -- --artifact-name vana-linux-x64 --platform linux --arch x64 --archive-format tar.gz --binary-name vana
- run: pnpm demo:transcripts
- run: pnpm demo:vhs
- uses: actions/upload-artifact@v7
with:
name: vana-demo-preview
path: |
docs/transcripts
docs/vhs
canary:
needs: [build-sea, demo-preview]
runs-on: ubuntu-latest
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: 22
node-version: 25
cache: pnpm
registry-url: https://registry.npmjs.org
- run: pnpm install --frozen-lockfile
- run: pnpm clean
- run: pnpm build
- run: pnpm pack:check
- name: Publish canary
run: |
SHORT_SHA=$(git rev-parse --short HEAD)
Expand All @@ -33,3 +115,88 @@ jobs:
npm publish --tag canary
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- uses: actions/download-artifact@v8
with:
pattern: vana-sea-*
path: artifacts/release
merge-multiple: true
- uses: actions/download-artifact@v8
with:
name: vana-demo-preview
path: artifacts/demo-preview
- name: Generate package-manager metadata
run: |
PACKAGE_VERSION=$(node -p "require('./package.json').version")
BRANCH_SLUG=$(printf "%s" "$GITHUB_REF_NAME" | tr '/_' '-' | tr -cd '[:alnum:]-')
TAG="canary-${BRANCH_SLUG}"
pnpm package-managers:generate -- --release-tag "$TAG" --package-version "$PACKAGE_VERSION"
- name: Publish branch prerelease assets
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
SHORT_SHA=$(git rev-parse --short HEAD)
BRANCH_SLUG=$(printf "%s" "$GITHUB_REF_NAME" | tr '/_' '-' | tr -cd '[:alnum:]-')
TAG="canary-${BRANCH_SLUG}"
TITLE="Canary ${GITHUB_REF_NAME}"
NOTES="Branch canary for ${GITHUB_REF_NAME} at ${SHORT_SHA}. Install with the branch installer and \`--version ${TAG}\`. This prerelease also includes demo transcripts and terminal SVG previews."
mapfile -t RELEASE_FILES < <(node ./scripts/collect-release-assets.mjs)

if [ "${#RELEASE_FILES[@]}" -eq 0 ]; then
echo "No release files were found in artifacts/release"
exit 1
fi

if gh release view "$TAG" >/dev/null 2>&1; then
mapfile -t EXISTING_ASSETS < <(gh release view "$TAG" --json assets --jq '.assets[].name' | sort)

for existing in "${EXISTING_ASSETS[@]}"; do
keep=false
for release_file in "${RELEASE_FILES[@]}"; do
if [ "$existing" = "$(basename "$release_file")" ]; then
keep=true
break
fi
done

if [ "$keep" = false ]; then
gh release delete-asset "$TAG" "$existing" -y
fi
done

gh release edit "$TAG" \
--target "$GITHUB_SHA" \
--title "$TITLE" \
--notes "$NOTES" \
--prerelease
gh release upload "$TAG" "${RELEASE_FILES[@]}" --clobber
else
gh release create "$TAG" "${RELEASE_FILES[@]}" \
--target "$GITHUB_SHA" \
--title "$TITLE" \
--notes "$NOTES" \
--prerelease
fi
verify-prerelease-install:
needs: canary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Smoke test hosted prerelease installer
run: |
BRANCH_SLUG=$(printf "%s" "$GITHUB_REF_NAME" | tr '/_' '-' | tr -cd '[:alnum:]-')
TAG="canary-${BRANCH_SLUG}"
sh ./scripts/test-install-github-release.sh --version "$TAG"
- name: Verify prerelease demo assets
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
BRANCH_SLUG=$(printf "%s" "$GITHUB_REF_NAME" | tr '/_' '-' | tr -cd '[:alnum:]-')
TAG="canary-${BRANCH_SLUG}"
node ./scripts/assert-release-demo-assets.mjs --tag "$TAG" --repo "$GITHUB_REPOSITORY"
- name: Sync Homebrew formula
env:
GH_TOKEN: ${{ secrets.HOMEBREW_SYNC_TOKEN }}
run: |
BRANCH_SLUG=$(printf "%s" "$GITHUB_REF_NAME" | tr '/_' '-' | tr -cd '[:alnum:]-')
TAG="canary-${BRANCH_SLUG}"
gh workflow run sync-formula.yml --repo vana-com/homebrew-vana -f release_tag="$TAG"
Loading
Loading