* fix(generation): refuse supplied media fields a provider cannot carry
* fix(media): probe selected tools in their execution environment
* fix(credentials): use native file replacement across processes
* fix(runtime): distinguish tool preparation from process startup
* fix(cli): bootstrap from the physical distribution directory
Media tests that probe for ffmpeg skipped on GitHub because neither
runner image ships it. Installing on only one matrix OS would leave a
red leg ambiguous between a product bug and a missing binary.
Bug reports ask for the reproduction, the version and the doctor output;
feature requests ask for the goal and the proposed behavior. Both apply a
label, so the bug and feature request labels no longer depend on the
reporter picking one.
The packaged layout ships no node_modules beside its sources, so an authored font reaches the
machine package root by a path a workspace checkout never takes. `--version` and `studio --help`
load neither, which let a release publish with every bundled font unreachable.
The check now installs one font package and validates a Source that uses it, from a directory
outside the checkout. Run against the 0.1.10 tarball this step exits 1; against 0.1.11 it exits 0.
The failures appear on Windows and not on Linux, roughly one run in three, so
reproducing one means running the suite on that runner repeatedly under its own
load. Manual dispatch only; delete it once the flake is understood.
A Windows job on f80a562 sat for 97 minutes after its last output. The suite had
reached "one local Worker admits later Builds while preserving shared Endpoint
capacity", whose poll for two terminal Build outcomes carried no deadline; one
Build did not complete on that run, so the loop polled every 5 ms until the job
was cancelled. Re-running the same commit passed, so the stall is intermittent
and its cause in the Worker launch path is not yet identified.
Three bounds now apply. The poll fails after 30 s and prints each Build's last
outcome. `node --test` receives `--test-timeout=120000`, well above the 5.75 s
slowest test measured on that run. The job takes `timeout-minutes: 20`.
Bring the 16 origin/main commits onto the rebuild branch and resolve the
overlap between the two WhisperX-through-HypiHub implementations.
- Gemini default model follows origin/main: gemini-3.1-pro.
- @hypit/provider-hypihub keeps this branch's implementation: the shared
@hypit/whisperx interpretation layer, transcriptionModel, diagnose and
multipart /v1/audio/transcriptions (the HypiHub API accepts multipart or
JSON url). The duplicate src/whisperx.ts from origin/main is dropped.
- reference-video-tools keeps the local WhisperX Provider until the
creation-time capability call goes through the Runtime Profile; its
README states that gap instead of a HypiHub hard-code.
- skills/hypit keeps this branch's content, including the local WhisperX
host setup path; the Skill is rewritten in a later step.
- docs/quickstart takes origin/main's agent-first rewrite; docs/guide/skill
keeps this branch's version without route state machines.
- examples keep the HypiHub-first hypit.runtime-profile@1 starter profiles.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The first two runs did what the non-blocking job was for: they returned a real
failure list — six tests across five causes, one of them a production bug in
how a file name was taken from a resolved path — and that list is now closed.
Windows passes 544 tests with none failing, so there is nothing left for
continue-on-error to be tolerant of, and leaving it would mean the next
regression is reported and ignored.
One matrix rather than two jobs: the legs run identical steps, and the way this
drifts is somebody adding a step to one of them.
Nothing needs updating in branch protection — main is unprotected, so the
context rename from `check` to `check (ubuntu-latest)` and
`check (windows-latest)` displaces nothing.
Nothing here had ever run on Windows, so Windows-only breakage reached authors
instead of this file — paths that ran past the length a Windows path may be, a
transcriber that opened a console window per worker, a script that could not
import itself. Each of those is fixed in this branch and none of them would have
been caught by the Ubuntu leg.
It starts non-blocking. The first runs are here to report what Windows actually
finds, and a list nobody has read yet should not be blocking every merge while
it is read.
Nothing under docs/ is in tsconfig's include or reachable from any test, so
a prose change was spending two and a half minutes proving that 633
unrelated tests still pass. CI now ignores docs/.
The hygiene checks are the exception: their scan roots include docs, and
they are what would catch a workstation path or a leaked key in a page. They
now also run in deploy-pages.yml, which already triggers on exactly the
pushes CI is skipping. A change touching both docs and code still runs CI,
since paths-ignore only applies when every changed file matches.
deploy-pages.yml already builds the site on every push that touches it.
Nothing under docs/.vitepress references a workspace package, so a change
to packages/ cannot break the build that CI was repeating.
Nothing was verifying the repository. The only workflow deployed the
documentation site, so a green `pnpm test` was a claim each contributor made
on their own machine. CI now runs the type check, both test suites and the
documentation build on pushes to main and on pull requests, and the README
badge reports it instead of the deploy job.
Markdown turns a line break between two Chinese characters into a space, so
every hard-wrapped Chinese paragraph rendered with stray gaps: 295 of them
across the 16 specification pages added in the last commit, plus the
Chinese README. Chinese paragraphs now run unwrapped, matching what the
existing zh pages already did.