44 Commits

Author SHA1 Message Date
Olli Paloviita 145643b789 chore: raise the minimum supported Node.js runtime to 20
Node.js 18 is EOL and the toolchain init installs no longer supports it:
current Playwright releases and the skills CLI both require Node.js 20+.
Bump engines for screenci and create-screenci, run the CI smoke matrix on
Node.js 20, and update the setup docs.
2026-08-12 21:35:09 +03:00
Olli Paloviita d2c3013a20 fix(ci): use ffmpeg-static binary path in audio capture instead of system ffmpeg 2026-06-27 02:16:06 +03:00
Olli Paloviita 0d16a4db3a ci: install ffmpeg on the audio-capture runner 2026-06-27 02:14:03 +03:00
Olli Paloviita 34880098d8 ci: restrict audio-capture job to Linux (feature is Linux-only) 2026-06-27 02:10:09 +03:00
Olli Paloviita 8c8cfab028 feat(screenci): capture system audio with the captureAudio record option
Add a captureAudio record option that records system audio alongside the
screen recording and mixes it into the rendered video starting at time 0.

- screenAudio.ts: spawn ffmpeg to capture the platform default loopback
  source (PulseAudio default.monitor on Linux, avfoundation on macOS, WASAPI
  loopback on Windows), with a graceful stdin 'q' stop and an exit-settler
  pattern that avoids a race where an early ffmpeg exit hung stop() forever.
- video.ts: start capture when captureAudio > 0 and attach the captured
  track via addScreenAudioTrack after the recording finalizes.
- events.ts: addScreenAudioTrack injects an audioStart event at timeMs 0.
- types.ts: document captureAudio as a linear gain value (0 disables).
- browserLaunchOptions.ts: drop Playwright's default --mute-audio via
  ignoreDefaultArgs so headless Chromium actually outputs audio to the
  system mixer where the ffmpeg monitor can capture it.
- cli.ts: upload audioStart assets, add wav/m4a/aac content types, and add
  an alwaysUpload flag so the per-recording screen-audio file bypasses
  content-hash dedup and is never skipped as "already exists".
- docs: add the screen-audio guide with per-OS and CI setup, register it in
  the manifest, and link it from ci-setup.
- ci.yml: add an audio-capture integration job across ubuntu/macos/windows.
2026-06-25 15:35:24 +03:00
Olli Paloviita e92bc0f37e fix(cli): guide users to cd into screenci island instead of auto-using its config
Resolve config by walking up for a flat screenci.config.ts only. When the
command runs from outside the island and a nested screenci/screenci.config.ts
is found, exit with guidance to cd into it, rather than silently running a
registry-downloaded CLI version. Run smoke-test CI steps from inside the
island so they exercise the local build.
2026-06-14 13:40:40 +03:00
Olli Paloviita 70f51674a3 feat(init): batch shared installs and fix pnpm 11 build approval
Install the dev dependencies that share install flags (@playwright/test,
@types/node, @playwright/cli) in a single command, keeping screenci
separate since pnpm needs --allow-build=ffmpeg-static. Resolves the
dependency graph twice instead of four times.

Make the generated island pnpm-workspace.yaml version-aware: pnpm 11
removed onlyBuiltDependencies in favour of allowBuilds, so a flagless
pnpm install on pnpm 11 silently skipped the ffmpeg-static build.
Resolve the pnpm version before writing the workspace file and emit the
matching approval key.

Add a pnpm 10 + 11 CI job (scripts/assert-ffmpeg-built.js) that runs
init and asserts the ffmpeg-static binary built, including a flagless
reinstall that relies only on the generated workspace approval.
2026-06-14 00:41:57 +03:00
Olli Paloviita 6c634840e5 fix(screenci): handle yarn 1 shadowing corepack 2026-06-08 14:09:40 +03:00
Olli Paloviita 1f18daa0f2 chore(ci): enable yarn via corepack 2026-06-08 13:51:38 +03:00
Olli Paloviita 5f9b261228 test(screenci): cover init and cli behavior 2026-06-08 13:49:35 +03:00
Olli Paloviita 11aadd8c54 feat(screenci): improve init and cli docs 2026-06-08 13:32:23 +03:00
Olli Paloviita e53b9c8775 docs(screenci): update init and docs
note important ignore demo-saas
2026-06-02 12:35:38 +03:00
Olli Paloviita 1c947fbaab chore(screenci): update cli workflow and tests 2026-06-02 12:28:19 +03:00
Olli Paloviita e89fd9a461 docs(screenci): clarify node runtime requirements 2026-06-01 11:29:52 +03:00
Olli Paloviita bf7a745c2e docs(screenci): update release assets and installation docs 2026-05-28 13:15:02 +03:00
Olli Paloviita 20a60a13cb chore(release): sync versioned package assets 2026-05-26 20:29:58 +03:00
Olli Paloviita 7d9775bfa1 fix(screenci): update ci and init workflow 2026-05-26 20:04:14 +03:00
Olli Paloviita 3ba34b5f85 docs(screenci): update installation docs and ci workflow 2026-05-26 19:35:40 +03:00
Olli Paloviita 662959204c fix(ci): stabilize smoke tarball paths 2026-05-26 19:13:16 +03:00
Olli Paloviita 40035d6fc0 chore(ci): disable husky during installs 2026-05-26 18:53:17 +03:00
Olli Paloviita 04dccfe30b docs(screenci): format docs code blocks 2026-05-26 18:48:06 +03:00
Olli Paloviita 2552112fde feat(screenci): add init flow and docs refresh 2026-05-26 18:43:28 +03:00
Olli Paloviita 145d6df7bf docs(screenci): refresh docs and CLI flow 2026-05-26 15:21:30 +03:00
Olli Paloviita 627b06a4d1 chore(ci): update GitHub actions and normalize CLI test output 2026-05-26 12:34:52 +03:00
Olli Paloviita 705a8acefb test(ci): fix local smoke project setup 2026-05-25 19:25:49 +03:00
Olli Paloviita d489abba8f fix(cli): append secrets and align init dependency path 2026-05-25 19:05:37 +03:00
Olli Paloviita a8cb2fcd11 fix: install only local version 2026-05-21 11:15:02 +03:00
Olli Paloviita ac992f30da fix: windows and test both cmd and powershell 2026-05-21 10:55:46 +03:00
Olli Paloviita a8727075ea fix: ci fix 2 2026-05-21 10:01:57 +03:00
Olli Paloviita 97663d0f60 fix: ci path fixed 2026-05-21 09:55:03 +03:00
Olli Paloviita 6d52a639ca docs(screenci): refresh init and usage guidance 2026-05-21 09:51:59 +03:00
Olli Paloviita e291faa342 fix: removed unused files 2026-05-19 11:33:21 +03:00
Olli Paloviita 7542c03e25 fix(cli): scaffold node typings for init 2026-05-13 13:40:31 +03:00
Olli Paloviita 7e4a3afd74 Fix image push 2026-04-10 19:41:33 +03:00
Olli Paloviita 7f208fcac0 Improve image to not build extra image, fix image selection 2026-04-10 13:20:11 +03:00
Olli Paloviita 2d8a18d8f7 trusted publishing added 2026-04-10 10:57:56 +03:00
Olli Paloviita 1f57641a02 Fix test that was failing due to timing assumptions 2026-04-10 10:40:06 +03:00
Olli Paloviita 4b8748b20a workflows updated 2026-04-10 08:37:49 +03:00
Olli Paloviita 91a0472109 workflows updated 2026-04-09 15:31:26 +03:00
Olli Paloviita 7cf2d2e57f Publish workflow added 2026-04-09 15:01:43 +03:00
Olli Paloviita 91ddccfb44 CLI docker/podman options added, pre-commit added 2026-04-01 14:28:07 +03:00
Olli Paloviita 3e6da4e94e Building now arm64 also 2026-04-01 08:48:35 +03:00
Olli Paloviita d073639b71 renderOptions defaults added, cli improved 2026-03-30 13:39:45 +03:00
Olli Paloviita fa139ca75d Image release added 2026-03-29 12:16:15 +03:00