Skip to content

main CI debt: docs-quality, ts-noemit, Clean Room (landlock), cross-check, strict-block-ga failing on main #102

Open

Description

@brbrainerd

Several CI checks are failing on main itself (HEAD 89d0493bc5cf87373ced354eb1f3b6624a707626), independent of any PR. They surface on every PR that merges main (e.g. #98) but are not caused by those PRs. Filing one consolidated tracker so they're owned and visible. All are advisory (PRs show UNSTABLE, not BLOCKED).

Verification method: queried repos/vox-foundation/vox/commits/<main-HEAD>/check-runs, and for each, confirmed the implicated files are not in #98's diff (git diff origin/main...HEAD) and/or the relevant source is unchanged by recent commits.

1. Clean Room Setup + Idempotency (ubuntu/macos/windows) — confirmed failure on main HEAD

cargo build during setup.vox provision fails with E0308 in crates/vox-cli/src/commands/runtime/run/sandbox.rs (lines 53/59/64/68/76): expected AccessFs, found BitFlags<AccessFs, u64>. A Landlock (landlock/enumflags2) API mismatch in Linux-only code. Needs a fix by someone who can build for Linux + knows the pinned landlock version.

2. vox audit --gate all --strict-block-ga — confirmed failure on main HEAD

The aspirational block-GA gate is red on main.

3. ts-noemit (TS emit typecheck)

Emitted __emit_test__ TS fails tsc --noEmit: Cannot find module '@vox/runtime'; Property 'initial' missing in TimerProps; ErrorBoundary.setState incompatible with base Component. The codegen emitter (crates/vox-codegen/src/codegen_ts/) is unchanged in main's recent commits; path-gated so it only runs when codegen/compiler paths change.

4. cross-check (macos-latest aarch64-apple-darwin, windows x86_64) — path-gated

Cross-compilation of the workspace (incl. the new mobile crates). Not reproduced here.

5. docs-quality (Starlight build) — confirmed failure on main HEAD

A chain of content-collection schema violations in main-authored docs. One class fixed in #98 (unquoted last_updated YAML dates → parsed as Date, fails z.string() — quoted 5 mobile docs). Remaining: architecture/_screenshots/research-sources.md + multiple Failed to parse Markdown (golden.md, tutorials/, reference/, how-to/*).


Recommendation: fix each in its owning subsystem's PR. These should not gate unrelated PRs; consider marking the chronically-red advisory checks non-required until addressed. Discovered while landing #98 (harness follow-ups), whose own CI concerns are green.

Activity

  1. brbrainerd commented on Jun 1, 2026

    @brbrainerd
    CollaboratorAuthor

    Update — root cause of cross-check (#4) pinned

    cross-platform-check.yml runs cargo check --workspace --target <triple> with no GUI-frontend build step. crates/vox-gui is a Tauri bin whose tauri::generate_context!() (main.rs:103) reads tauri.conf.json at compile time and requires frontendDist = "ui/dist" to exist. crates/vox-gui/ui/dist is gitignored (0 tracked files), so on a fresh runner the macro fails:

    error: proc-macro generate_context panicked — The frontendDist configuration is set to "ui/dist" but this path doesn't exist

    This blocks both cross-check (windows) and cross-check (macos) for vox-gui. It's environmental/pre-existing (not a code regression; reproduces only when ui/dist is absent). vox-gui's Rust otherwise compiles cleanly cross-platform.

    Recommended fix (workflow-policy decision for the owner):

    • Option A (minimal): add --exclude vox-gui to the cross-check command — the Tauri bin can't be cargo checked without a built frontend, and its Rust is already exercised by the host CI build.
    • Option B (full coverage): add a frontend build step (pnpm -C crates/vox-gui/ui install && pnpm -C crates/vox-gui/ui build) before cargo check, so ui/dist exists. Heavier (adds node/pnpm setup + build time to a "quick" cross-check).

    Note (separate, already fixed in #98): a real regression — vox-gui was missing a tracing dep for newly-added tracing::debug! calls — sat in front of this frontendDist error and is now resolved.

  2. brbrainerd commented on Jun 1, 2026

    @brbrainerd
    CollaboratorAuthor

    Update: cross-check (#4) addressed in PR #98 via Option A — cargo check --workspace --exclude vox-gui ... (commit 4bf25c8). The Tauri bin can't be cargo-checked without a built frontend, and its full build is covered by release-gui.yml. Verified locally: cargo check --workspace --exclude vox-gui --target x86_64-pc-windows-msvc → RC=0. The remaining four items in this issue (strict-block-ga, docs-quality, Clean Room/landlock, ts-noemit) are still open and owner-assigned.

  3. brbrainerd commented on Jun 13, 2026

    @brbrainerd
    CollaboratorAuthor

    Docker reproduction on current main (2026-06-13) — most of these are already resolved

    Ran each failing check inside the vox-ci-runner-local Linux image (Rust 1.96 + Node 24 + pnpm) against current origin/main:

    Check Result on current main
    landlock / Clean Room (cargo check -p vox-cli, the E0308 in sandbox.rs) ✅ clean (exit 0) — self-healed by intervening merges
    docs-quality: docs-astro Starlight pnpm build ✅ clean (exit 0; only cosmetic shiki langs warnings for pwsh/gitignore/env fenced blocks)
    docs-quality: vox ci doctest-md --strict ✅ clean (exit 0)
    docs-quality: vox ci canonical-map-verify ✅ clean (exit 0)
    docs-quality: biome lint ✅ clean (exit 0)
    cross-platform cargo check --target x86_64-pc-windows-msvc ⚠️ not reproducible from Linux — aws-lc-sys needs NASM + the MSVC toolchain/libs; runs natively on windows-latest in CI. Also: cross-platform-check was moved to weekly-only / non-required in #279, so it no longer gates PRs or the merge queue.
    cross-platform aarch64-apple-darwin ⚠️ not reproducible from Linux (no macOS SDK); native on CI

    Conclusion: the Linux-side debt (landlock + docs-quality) is already green on current main — this issue was tracking a stale state. The only remaining items are the cross-platform native checks, which (a) can't be reproduced off their native OS and (b) are no longer per-PR gates. Recommend narrowing or closing this issue once a native cross-platform run confirms green. (ts_emit typecheck not re-run here — flag if still red on the native CI.)

    Cosmetic follow-up (optional): register pwsh/gitignore/gitattributes/env in docs-astro/astro.config.mjs shiki langs to silence the build warnings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions