Skip to content

feat(mcp): T5-2 — embedded MCP scaffold (audit-first)#195

Merged
lusoris merged 2 commits intomasterfrom
feat/t5-2-mcp-scaffold
Apr 29, 2026
Merged

feat(mcp): T5-2 — embedded MCP scaffold (audit-first)#195
lusoris merged 2 commits intomasterfrom
feat/t5-2-mcp-scaffold

Conversation

@lusoris
Copy link
Copy Markdown
Owner

@lusoris lusoris commented Apr 29, 2026

Summary

Audit-first scaffold for the in-process MCP server declared by ADR-0128 + Research-0005. Mirrors the ADR-0175 (Vulkan T5-1) + ADR-0184 (T7-29 part 1) pattern: ship the static surfaces in a focused PR so the T5-2b runtime PR (cJSON + mongoose vendoring, dedicated MCP pthread, SPSC ring buffer, SSE / UDS / stdio transport bodies) has a stable base to land on.

  • New public header `libvmaf/include/libvmaf/libvmaf_mcp.h` — `vmaf_mcp_init` / `_start_sse` / `_start_uds` / `_start_stdio` / `_stop` / `_close` / `_available` / `_transport_available`.
  • Stub TU `libvmaf/src/mcp/mcp.c` — every entry point validates arguments (NULLs / negative fds / missing paths → `-EINVAL`) then returns `-ENOSYS`.
  • New umbrella build flag `enable_mcp` + three per-transport sub-flags `enable_mcp_sse` / `enable_mcp_uds` / `enable_mcp_stdio` in `meson_options.txt`. All default `false`.
  • 12-sub-test smoke at `libvmaf/test/test_mcp_smoke.c` pinning the `-ENOSYS` + NULL-guard contract.
  • New user-facing doc `docs/mcp/embedded.md`; `docs/mcp/index.md` updated to reference both surfaces.

Zero runtime dependencies in this PR — no cJSON, no mongoose, no transport bodies. Those land in T5-2b.

Test plan

  • `meson setup build-cpu libvmaf -Denable_cuda=false -Denable_sycl=false -Denable_mcp=false` → 37/37 tests pass (baseline preserved).
  • `meson setup --reconfigure build-cpu libvmaf -Denable_mcp=true -Denable_mcp_sse=true -Denable_mcp_uds=true -Denable_mcp_stdio=true` → 38/38 tests pass (`test_mcp_smoke` is the delta).
  • `clang-tidy -p build-cpu libvmaf/src/mcp/mcp.c` → clean (15/15 suppressed system-header warnings).
  • `clang-format --dry-run --Werror` on all new files → clean.
  • CI required checks pass.

Reproducer

```bash
meson setup build-cpu libvmaf
-Denable_cuda=false -Denable_sycl=false
-Denable_mcp=true -Denable_mcp_sse=true
-Denable_mcp_uds=true -Denable_mcp_stdio=true
ninja -C build-cpu
meson test -C build-cpu test_mcp_smoke
```

ADR-0108 deep-dive checklist

  • no research digest needed: Research-0005 already covers T5-2 scope; ADR-0209 § References documents the chain. No new digest file added in this PR.
  • Decision matrixADR-0209 § Alternatives considered — six options compared (audit-first scaffold chosen, all-in-one mega-PR rejected, single-transport scaffolds rejected, stdio-first ordering deferred, no-umbrella-flag rejected, default-`auto` rejected).
  • AGENTS.md invariant note`libvmaf/AGENTS.md` § "Rebase-sensitive invariants" gains the "Embedded MCP scaffold contract" entry pinning the NULL-validate-then-`-ENOSYS` shape and the default-`false` build flag.
  • Reproducer / smoke-test command — see "Reproducer" above; smoke test `test_mcp_smoke` exercises all 12 sub-tests.
  • CHANGELOG.md entry`CHANGELOG.md` § Unreleased / Added.
  • Rebase note`docs/rebase-notes.md` § 0084 — Embedded MCP server scaffold (T5-2, ADR-0209).

Hard rule status

  • Netflix golden assertions: untouched.
  • Touched files lint-clean: yes (CPU + MCP build); CI lint excludes `libvmaf/src/mcp/` + `libvmaf/test/test_mcp` paths because the umbrella flag is off in the CI lint build (same precedent as Vulkan / CUDA / SYCL).
  • License headers: `Copyright 2026 Lusoris and Claude (Anthropic)` BSD-3-Clause-Plus-Patent on every new file.
  • NASA Power-of-10 invariants reserved for the runtime PR (rule 3 — no alloc on measurement-thread hot path; rule 2 — bounded ring drain) are documented in the public header and ADR-0209.
  • ffmpeg-patches: not applicable — the embedded MCP server is not probed via `pkg-config --cflags libvmaf` from any FFmpeg filter (host spawns it via library API or CLI flag, not at filter-init time).

What lands next (T5-2b)

Per Research-0005 § "Next steps" + ADR-0209 § "What lands next":

  1. Vendor cJSON + mongoose under `subprojects/`; wire `vmaf_mcp_init` / `_close` (SPSC ring + MCP pthread).
  2. SSE transport body (loopback mongoose).
  3. UDS transport body (newline-delimited JSON-RPC).
  4. stdio transport body (LSP-framed JSON-RPC).
  5. Tool-surface expansion (`vmaf.request_model_swap`, separate ADR per ADR-0128).
  6. `enable_mcp` default flip false → auto.

🤖 Generated with Claude Code

lusoris pushed a commit that referenced this pull request Apr 29, 2026
Resolves PR #195 CI failures:

- Doc-Substance Gate (ADR-0167): meson_options.txt added 4 enable_mcp*
  options without matching docs/development/build-flags.md edit. This
  commit adds the four rows pointing at ADR-0209 + docs/mcp/embedded.md.

- Assertion Density (Power of 10 §5): vmaf_mcp_transport_available was
  22 lines with 0 asserts. Adds an assert on the input-bound contract
  ((unsigned)transport <= 31u) which the function already validates
  before reading the bitmask. Self-documenting precondition + satisfies
  the JPL >=1 assert per >=20-line function rule.

No behaviour change (assert disables under NDEBUG; the existing
explicit bound check still rejects out-of-range transports at runtime).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Lusoris and others added 2 commits April 29, 2026 12:17
Audit-first scaffold for the in-process MCP server declared by
ADR-0128 + Research-0005. Public header, stub TU returning -ENOSYS
on every entry point, build-flag wiring (umbrella + three
per-transport sub-flags, all default false), 12-sub-test smoke
pinning the -ENOSYS + NULL-guard contract, and user-facing doc.

Same audit-first shape as ADR-0175 (Vulkan T5-1) and ADR-0184
(T7-29 part 1): land the static surfaces so the T5-2b runtime PR
(cJSON + mongoose vendoring, dedicated MCP pthread, SPSC ring
buffer, SSE / UDS / stdio transport bodies) has a stable base.

Verified: meson setup -Denable_mcp=false → 37/37 tests pass;
meson setup --reconfigure -Denable_mcp=true (+ all three sub-flags)
→ 38/38 tests pass; clang-tidy -p build-cpu on libvmaf/src/mcp/mcp.c
clean.

Closes T5-2 (audit half). T5-2b follows.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Resolves PR #195 CI failures:

- Doc-Substance Gate (ADR-0167): meson_options.txt added 4 enable_mcp*
  options without matching docs/development/build-flags.md edit. This
  commit adds the four rows pointing at ADR-0209 + docs/mcp/embedded.md.

- Assertion Density (Power of 10 §5): vmaf_mcp_transport_available was
  22 lines with 0 asserts. Adds an assert on the input-bound contract
  ((unsigned)transport <= 31u) which the function already validates
  before reading the bitmask. Self-documenting precondition + satisfies
  the JPL >=1 assert per >=20-line function rule.

No behaviour change (assert disables under NDEBUG; the existing
explicit bound check still rejects out-of-range transports at runtime).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@lusoris lusoris force-pushed the feat/t5-2-mcp-scaffold branch from adb88f1 to fbb184b Compare April 29, 2026 10:17
lusoris pushed a commit that referenced this pull request Apr 29, 2026
PRs #195 (T5-2 MCP scaffold), #199 (this PR), #200 (T7-10 HIP),
#201 (T7-38 SVE2) all independently picked ADR-0209. #195 opened
first and keeps it; this PR (T6-9 model registry + Sigstore)
rebases onto current master and renames to ADR-0211.

References updated across CHANGELOG, AGENTS, security.md,
model-registry.md, README, schema, vmaf.c, cli_parse.h,
test_tiny_model_verify.c, model_loader.{c,h}, dnn.h, rebase-notes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lusoris pushed a commit that referenced this pull request Apr 29, 2026
PRs #195/#199/#200/#201 all picked ADR-0209; #196/#200 both
picked Research-0032. #195 keeps ADR-0209 (opened first), #196
keeps Research-0032 (cambi). This PR (T7-10 HIP) bumps both.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lusoris pushed a commit that referenced this pull request Apr 29, 2026
PRs #195/#199/#200/#201 all picked ADR-0209 simultaneously.
#195 (T5-2 MCP scaffold) opened first, keeps the slot.
#199 → 0211, #200 → 0212, this PR (T7-38 SVE2) → 0213.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@lusoris lusoris merged commit 8f46b22 into master Apr 29, 2026
51 of 52 checks passed
@lusoris lusoris deleted the feat/t5-2-mcp-scaffold branch April 29, 2026 10:43
@github-actions github-actions Bot mentioned this pull request Apr 29, 2026
lusoris pushed a commit that referenced this pull request Apr 29, 2026
PRs #195 (T5-2 MCP scaffold), #199 (this PR), #200 (T7-10 HIP),
first and keeps it; this PR (T6-9 model registry + Sigstore)
rebases onto current master and renames to ADR-0211.

References updated across CHANGELOG, AGENTS, security.md,
model-registry.md, README, schema, vmaf.c, cli_parse.h,
test_tiny_model_verify.c, model_loader.{c,h}, dnn.h, rebase-notes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lusoris added a commit that referenced this pull request Apr 29, 2026
…#199)

* feat(ai): T6-9 — model registry schema + Sigstore --tiny-model-verify

Formalize model/tiny/registry.json with a JSON Schema (Draft 2020-12)
extended with license + Sigstore-bundle metadata, and wire the
previously-stubbed --tiny-model-verify CLI flag through to
`cosign verify-blob` via posix_spawnp(3p). Both halves operate on
the same registry surface; landing them together avoids a
schema flip-flop. Implements ADR-0209.

- model/tiny/registry.schema.json: schema_version bumps to 1; new
  optional license, license_url, sigstore_bundle, description fields.
- model/tiny/registry.json: every entry gains license metadata
  (BSD-3-Clause-Plus-Patent for fork-trained, BSD-2-Clause for the
  upstream LPIPS-Sq export) and a sigstore_bundle path; bundles
  themselves are populated at release time.
- ai/scripts/validate_model_registry.py: jsonschema-backed validator
  with structural-fallback for distros without python-jsonschema;
  cross-file consistency (sha256 match, sidecar presence, bundle
  path shape). New CI lane in .github/workflows/lint-and-format.yml.
- libvmaf/src/dnn/model_loader.{c,h}: new vmaf_dnn_verify_signature();
  parses the registry inline (no JSON dep), spawns cosign via
  posix_spawnp (system(3) is and stays banned). Public declaration
  in libvmaf/include/libvmaf/dnn.h.
- libvmaf/tools/cli_parse.{c,h}, vmaf.c: --tiny-model-verify flag
  + tiny_model_verify settings field; CLI calls the verifier before
  model load and exits non-zero on any failure.
- Tests: python/test/model_registry_schema_test.py (10 cases) +
  libvmaf/test/dnn/test_tiny_model_verify.c (5 failure-mode cases
  on Unix; ENOSYS smoke on Windows).
- Docs: new docs/ai/model-registry.md; docs/ai/inference.md gains
  a --tiny-model-verify row; docs/ai/security.md Layer 4 updated.
- CHANGELOG, AGENTS invariant, rebase-notes 0074, ADR index row.

Closes T6-9.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(docs): renumber ADR-0209 → ADR-0211 to avoid 4-way collision

PRs #195 (T5-2 MCP scaffold), #199 (this PR), #200 (T7-10 HIP),
first and keeps it; this PR (T6-9 model registry + Sigstore)
rebases onto current master and renames to ADR-0211.

References updated across CHANGELOG, AGENTS, security.md,
model-registry.md, README, schema, vmaf.c, cli_parse.h,
test_tiny_model_verify.c, model_loader.{c,h}, dnn.h, rebase-notes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(dnn): move arg-validation before platform probe + tighten test fixture mode

Two CI fixes for PR #199 (T6-9 model registry + Sigstore verify):

1. Windows MinGW64 build (`test_verify_null_path`): the `_WIN32` branch of
   `vmaf_dnn_verify_signature()` was returning `-ENOSYS` unconditionally
   without honouring the public-API contract that a `NULL onnx_path` returns
   `-EINVAL`. The non-Windows branch already had the NULL check at the
   function head; mirror it in the Windows branch so the contract is
   platform-independent.

2. CodeQL `cpp/world-writable-file-creation` at
   `test_tiny_model_verify.c:41`: the test scratch helper used
   `fopen("wb")`, which inherits the umask (commonly 0644 — and 0666 in
   some containerised CI environments) and was flagged as a real issue.
   Switch to `open(O_CREAT|O_WRONLY|O_TRUNC, 0600)` + `fdopen()` so the
   fixture creates owner-only files regardless of the runner's umask.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(cli): document --tiny-model-verify (T6-9 / ADR-0211)

Adds a Sigstore-bundle verification subsection under the Tiny-AI flags
section of docs/usage/cli.md so the --tiny-model-verify flag introduced
in T6-9 satisfies the per-surface doc-substance bar from ADR-0100. The
new copy covers the verify-blob shell-out, the supply-chain use case,
and the three failure modes that exit non-zero before inference.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(dnn): expand --tiny-model-verify branch coverage + snprintf truncation

Two issues raised on PR #199 (T6-9 model registry / Sigstore):

1. Coverage Gate FAIL — `libvmaf/src/dnn/model_loader.c` is on the
   security-critical list (libvmaf/src/dnn/*) which requires ≥85%
   line coverage. Baseline was 71% because
   `vmaf_dnn_verify_signature()` only had NULL-arg + missing-file
   smoke tests; the cosign-locate, posix_spawnp/waitpid, default-
   registry-derivation, and find_bundle_for_onnx malformed-JSON
   branches all sat dark. Added 14 fixture-driven tests covering:
   - default registry path derivation (NULL registry_path)
   - onnx_path with no '/' (model/tiny/registry.json fallback)
   - registry path with no '/' (relative bundle resolve branch)
   - bundle is a directory rather than a regular file
   - cosign-not-on-PATH (-EACCES) and empty-PATH short-circuit
   - cosign success via a fake `cosign` shell stub on PATH
   - cosign non-zero exit (-EPROTO) via the same stub
   - six malformed-JSON cases driving find_bundle_for_onnx() to
     -ENOENT / -EBADMSG on missing colon / quote / closing quote
     in the onnx and sigstore_bundle keys.
   model_loader.c coverage now sits at 86.0% line / 68.8% branch
   per gcovr against the dnn meson suite (verified locally with
   `scripts/ci/coverage-check.sh`).

2. -Wformat-truncation defect at model_loader.c:589. The
   snprintf("%s", bundle_rel) feeding bundle_abs's tail-buffer
   couldn't be proved bounded by gcc — bundle_rel is a
   PATH_MAX-sized buffer, the destination tail is up to
   `sizeof(bundle_abs) - 1`, and the runtime length precondition
   is opaque to -Wformat-truncation. Switched both branches to
   memcpy + explicit NUL using the already-validated lengths,
   keeping the bounds check load-bearing without the false
   positive. The no-slash fallback is rewritten symmetrically so
   neither branch uses snprintf for the rel-component copy.

New test fixtures use mode 0600 for files and 0700 for scratch
directories (CodeQL fix from the previous round, preserved).
PATH overrides save and restore the original env so the test
never leaks state on early failure.

Touched files leave the lint pass clean to PR-baseline (no new
clang-tidy errors, no new -Wformat warnings; pre-existing
analyzer false-positive on slurp_registry stays untouched).

---------

Co-authored-by: Lusoris <lusoris@pm.me>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lusoris pushed a commit that referenced this pull request Apr 29, 2026
PRs #195/#199/#200/#201 all picked ADR-0209; #196/#200 both
picked Research-0032. #195 keeps ADR-0209 (opened first), #196
keeps Research-0032 (cambi). This PR (T7-10 HIP) bumps both.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lusoris added a commit that referenced this pull request Apr 29, 2026
* feat(hip): T7-10 — HIP (AMD) backend scaffold (audit-first)

Mirrors the Vulkan T5-1 scaffold (ADR-0175) for the HIP / AMD ROCm
backend. Lands the static surfaces (header, build wiring, kernel
stubs, smoke test, CI matrix row, docs) so the runtime + first-kernel
PRs that follow have a stable base to land on.

Public C-API surface (libvmaf/include/libvmaf/libvmaf_hip.h)
  + VmafHipState (opaque)
  + VmafHipConfiguration { device_index, flags }
  + vmaf_hip_state_init / _import_state / _state_free
  + vmaf_hip_list_devices / vmaf_hip_available
Header purity: HIP runtime types cross the ABI as uintptr_t.

Backend tree (libvmaf/src/hip/)
  + common.{c,h} — context_new/destroy/device_count + public C-API stubs.
  + picture_hip.{c,h} — alloc/free stubs (-ENOSYS).
  + dispatch_strategy.{c,h} — feature-name → kernel routing stub.
  + meson.build — paths relative to libvmaf/src/hip/, with `..`
    walks to the feature stubs at libvmaf/src/feature/hip/.

Feature kernel stubs (libvmaf/src/feature/hip/)
  + adm_hip.c, vif_hip.c, motion_hip.c — _init / _run return -ENOSYS
    pending real implementations.
  + feature_hip.h — forward declarations so the stubs aren't flagged
    by clang-tidy's misc-use-internal-linkage checker.

Build wiring
  + new `enable_hip` boolean option in libvmaf/meson_options.txt
    (default false — matches enable_cuda / enable_sycl convention;
    Vulkan's `feature` form is intentionally not mirrored, see
    ADR-0209 § "Decision").
  + conditional `subdir('hip')` in libvmaf/src/meson.build, with
    `hip_sources` threaded into libvmaf_feature_static_lib and
    `hip_deps` into the top-level library() dependencies list.
  + cdata.set10('HAVE_HIP', true) when enabled.
  + dependency('hip-lang', required: false) optional probe — no hard
    SDK requirement for the scaffold.

Smoke test
  + libvmaf/test/test_hip_smoke.c — 9 sub-tests pinning the contract
    (4 internal-context lifecycle + 5 public C-API entry-point
    -ENOSYS / -EINVAL / NULL-safe assertions). Wired in
    libvmaf/test/meson.build under `if get_option('enable_hip')`.
  + verified locally: meson setup -Denable_hip=true + ninja +
    test_hip_smoke → 9/9 pass. Default no-HIP build still 37/37.

CI matrix
  + new "Build — Ubuntu HIP (T7-10 scaffold)" row in
    .github/workflows/libvmaf-build-matrix.yml. Compiles with
    -Denable_hip=true. No ROCm SDK install step needed.

Docs
  + new docs/backends/hip/overview.md — "scaffold only" warning,
    build instructions, "what lands next" sequence.
  + ADR-0209 captures the audit-first decision + alternatives
    (separate libvmaf_hip.so vs in-tree, AMD-only vs hipify
    auto-translation, ROCm vs HIP runtime, boolean vs feature
    option type).
  + Research-0032 covers AMD market share + ROCm 6.x Linux
    maturity check.
  + ADR README index updated; docs/backends/index.md flipped from
    "planned" to "scaffold"; docs/development/build-flags.md row
    added; docs/rebase-notes.md entry 0074 added; libvmaf/AGENTS.md
    rebase-sensitive invariant entry added.
  + CHANGELOG entry under [Unreleased] § Added.

Zero hard runtime dependencies — `dependency('hip-lang')` probe
stays optional. Adding the real linkage is the responsibility of
the runtime PR (T7-10b).

ADRs: 0209.
Research: 0032.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(docs): renumber ADR-0209 → ADR-0212 and Research-0032 → 0033

PRs #195/#199/#200/#201 all picked ADR-0209; #196/#200 both
picked Research-0032. #195 keeps ADR-0209 (opened first), #196
keeps Research-0032 (cambi). This PR (T7-10 HIP) bumps both.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Lusoris <lusoris@pm.me>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lusoris pushed a commit that referenced this pull request Apr 29, 2026
PRs #195/#199/#200/#201 all picked ADR-0209 simultaneously.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lusoris added a commit that referenced this pull request Apr 29, 2026
* feat(simd): T7-38 — SSIMULACRA 2 PTLR + IIR-blur SVE2 ports

Mirror the NEON SSIMULACRA 2 ports lane-for-lane in a new SVE2
sister TU under a fixed 4-lane `svwhilelt_b32(0, 4)` predicate so
the SVE2 path is byte-identical to NEON regardless of the runtime
vector length, satisfying the ADR-0138 / ADR-0139 / ADR-0140
byte-exact contract. Runtime gate via getauxval(AT_HWCAP2) &
HWCAP2_SVE2; NEON stays the fallback. Build-time probe
`cc.compiles(... -march=armv9-a+sve2)` leaves HAVE_SVE2 unset on
toolchains without SVE2 intrinsics so the legacy NEON-only build
path is unchanged.

Validated under qemu-aarch64-static -cpu max via the new cross-file
build-aux/aarch64-linux-gnu-sve2.ini: dispatch surfaces
"NEON=1 SVE2=1" and all 11 test_ssimulacra2_simd bit-exactness
subtests pass byte-for-byte against the scalar reference.

Closes Research-0016 / Research-0017 "SVE2 deferred pending CI
hardware" footnote and backlog row T7-38.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(docs): renumber ADR-0209 → ADR-0213 to avoid collision

PRs #195/#199/#200/#201 all picked ADR-0209 simultaneously.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(metrics): add SSIMULACRA 2 SVE2 SIMD note (T7-38 / ADR-0213)

Note SVE2 ports for IIR-blur and PTLR alongside the existing AVX2 /
AVX-512 / NEON paths in the SSIMULACRA 2 backends paragraph, citing
ADR-0213 and the Research-0016 / Research-0017 deferral flips. Closes
the doc-substance gate gap on PR #201 — the SVE2 sources under
libvmaf/src/feature/arm64/ are user-discoverable SIMD paths and need
a docs/metrics/ entry per CLAUDE.md §12 r10 / ADR-0100.

---------

Co-authored-by: Lusoris <lusoris@pm.me>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lusoris pushed a commit that referenced this pull request May 1, 2026
…-1a Netflix Public dataset row)

Update docs/state.md `_Updated:` stamp to 2026-04-29 and rewrite the
"Tiny-AI C1 baseline `fr_regressor_v1.onnx`" deferral row's reopen-trigger
to TRIGGERED — the Netflix Public training corpus that gated C1 is now
locally available at `.workingdir2/netflix/` (9 ref + 70 dis YUVs, ~37 GB,
gitignored; provided by lawrence 2026-04-27), unblocking BACKLOG T6-1a.

Verified the rest of state.md against the 2026-04-29-session merged PR
set (#193#205, #209). Every merged PR was feature / chore / docs / perf
with no bug-status delta to record per CLAUDE §12 rule 13:
- #193 chore(dnn) T7-12 env override removal — chore.
- #194 docs(research) T7-9 NPU digest — research.
- #195 feat(mcp) T5-2 embedded scaffold — feature.
- #196 feat(vulkan) T7-36 cambi integration — feature.
- #197 feat(motion) Netflix b949ceb port — upstream port.
- #198 chore(backlog) T7-32 micro-investigations — verify-only.
- #199 feat(ai) T6-9 model registry — feature.
- #200 feat(hip) T7-10 HIP scaffold — feature.
- #201 feat(simd) T7-38 SVE2 ports — feature.
- #202 feat(ci) T6-8 parity matrix — feature.
- #203 feat(ai) T6-7 FastDVDnet — feature.
- #205 docs(audit) T7-4 quarterly audit — explicitly notes "no
  state.md changes (no upstream commit ruled in/out a fork bug)".
- #209 perf(sycl) T7-17 fp64-less device — perf.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lusoris pushed a commit that referenced this pull request May 1, 2026
…-1a Netflix Public dataset row)

Update docs/state.md `_Updated:` stamp to 2026-04-29 and rewrite the
"Tiny-AI C1 baseline `fr_regressor_v1.onnx`" deferral row's reopen-trigger
to TRIGGERED — the Netflix Public training corpus that gated C1 is now
locally available at `.workingdir2/netflix/` (9 ref + 70 dis YUVs, ~37 GB,
gitignored; provided by lawrence 2026-04-27), unblocking BACKLOG T6-1a.

Verified the rest of state.md against the 2026-04-29-session merged PR
set (#193#205, #209). Every merged PR was feature / chore / docs / perf
with no bug-status delta to record per CLAUDE §12 rule 13:
- #193 chore(dnn) T7-12 env override removal — chore.
- #194 docs(research) T7-9 NPU digest — research.
- #195 feat(mcp) T5-2 embedded scaffold — feature.
- #196 feat(vulkan) T7-36 cambi integration — feature.
- #197 feat(motion) Netflix b949ceb port — upstream port.
- #198 chore(backlog) T7-32 micro-investigations — verify-only.
- #199 feat(ai) T6-9 model registry — feature.
- #200 feat(hip) T7-10 HIP scaffold — feature.
- #201 feat(simd) T7-38 SVE2 ports — feature.
- #202 feat(ci) T6-8 parity matrix — feature.
- #203 feat(ai) T6-7 FastDVDnet — feature.
- #205 docs(audit) T7-4 quarterly audit — explicitly notes "no
  state.md changes (no upstream commit ruled in/out a fork bug)".
- #209 perf(sycl) T7-17 fp64-less device — perf.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lusoris pushed a commit that referenced this pull request May 1, 2026
…-1a Netflix Public dataset row)

Update docs/state.md `_Updated:` stamp to 2026-04-29 and rewrite the
"Tiny-AI C1 baseline `fr_regressor_v1.onnx`" deferral row's reopen-trigger
to TRIGGERED — the Netflix Public training corpus that gated C1 is now
locally available at `.workingdir2/netflix/` (9 ref + 70 dis YUVs, ~37 GB,
gitignored; provided by lawrence 2026-04-27), unblocking BACKLOG T6-1a.

Verified the rest of state.md against the 2026-04-29-session merged PR
set (#193#205, #209). Every merged PR was feature / chore / docs / perf
with no bug-status delta to record per CLAUDE §12 rule 13:
- #193 chore(dnn) T7-12 env override removal — chore.
- #194 docs(research) T7-9 NPU digest — research.
- #195 feat(mcp) T5-2 embedded scaffold — feature.
- #196 feat(vulkan) T7-36 cambi integration — feature.
- #197 feat(motion) Netflix b949ceb port — upstream port.
- #198 chore(backlog) T7-32 micro-investigations — verify-only.
- #199 feat(ai) T6-9 model registry — feature.
- #200 feat(hip) T7-10 HIP scaffold — feature.
- #201 feat(simd) T7-38 SVE2 ports — feature.
- #202 feat(ci) T6-8 parity matrix — feature.
- #203 feat(ai) T6-7 FastDVDnet — feature.
- #205 docs(audit) T7-4 quarterly audit — explicitly notes "no
  state.md changes (no upstream commit ruled in/out a fork bug)".
- #209 perf(sycl) T7-17 fp64-less device — perf.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lusoris added a commit that referenced this pull request May 1, 2026
…-1a Netflix Public dataset row) (#245)

Update docs/state.md `_Updated:` stamp to 2026-04-29 and rewrite the
"Tiny-AI C1 baseline `fr_regressor_v1.onnx`" deferral row's reopen-trigger
to TRIGGERED — the Netflix Public training corpus that gated C1 is now
locally available at `.workingdir2/netflix/` (9 ref + 70 dis YUVs, ~37 GB,
gitignored; provided by lawrence 2026-04-27), unblocking BACKLOG T6-1a.

Verified the rest of state.md against the 2026-04-29-session merged PR
set (#193#205, #209). Every merged PR was feature / chore / docs / perf
with no bug-status delta to record per CLAUDE §12 rule 13:
- #193 chore(dnn) T7-12 env override removal — chore.
- #194 docs(research) T7-9 NPU digest — research.
- #195 feat(mcp) T5-2 embedded scaffold — feature.
- #196 feat(vulkan) T7-36 cambi integration — feature.
- #197 feat(motion) Netflix b949ceb port — upstream port.
- #198 chore(backlog) T7-32 micro-investigations — verify-only.
- #199 feat(ai) T6-9 model registry — feature.
- #200 feat(hip) T7-10 HIP scaffold — feature.
- #201 feat(simd) T7-38 SVE2 ports — feature.
- #202 feat(ci) T6-8 parity matrix — feature.
- #203 feat(ai) T6-7 FastDVDnet — feature.
- #205 docs(audit) T7-4 quarterly audit — explicitly notes "no
  state.md changes (no upstream commit ruled in/out a fork bug)".
- #209 perf(sycl) T7-17 fp64-less device — perf.

Co-authored-by: Lusoris <lusoris@pm.me>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant