Skip to content

fix(test): run package suites on current CLI; drop facade pack symlink#87

Merged
wolfy-j merged 1 commit into
masterfrom
fix/test-harness-current-cli
Jul 18, 2026
Merged

fix(test): run package suites on current CLI; drop facade pack symlink#87
wolfy-j merged 1 commit into
masterfrom
fix/test-harness-current-cli

Conversation

@wolfy-j

@wolfy-j wolfy-j commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Makes GitHub CI green on the current CLI (v0.3.21a). All nine Test jobs were failing; none of the failures were caught before because the harnesses only break under the newest CLI's linker scoping, replacement filtering, and artifact digest rules.

Harness restructure (all packages). Replacement-loaded modules now get their own publish filters applied (exclude_meta type: test, exclude app:**), so a package replaced into its own harness loses its test entries. Harness locks now load the package as first-party source (src: ..). The harness ns.dependency entries are gone — they conflicted as duplicate roots with the dependencies modules declare themselves — and requirement values are bound as -o requirement defaults in each test Makefile. CI runs make test / make lint, so CI and local runs are identical commands.

Facade pack symlink. src/facade/test/public was a committed symlink that landed in the published artifact; the CLI's tree digest rejects symlinks, which failed every facade install resolved from a directory. Removed; the harness binds public_files to ../public via override.

Dead test APIs, now exercised. Because module tests were silently filtered out before, two suites carried assertions calling APIs that don't exist in wippy/test (expect(), test.expect().to_*). Converted to the real API. That surfaced a real gap in the relay welcome test: the user hub's actor scope had no process.send grant, so the welcome payload was silently dropped — the harness now grants messaging to the test user scope.

Local results on v0.3.21a: actor 21, bootloader 15, embeddings 11, facade 67, llm 1198, migration 18, relay 17, usage 6, views 94 — 1447 tests, all lints clean.

The per-package test harnesses no longer boot on wippy v0.3.21a:

- Replacement-loaded modules now have their wippy.yaml publish filters
  applied (exclude_meta type:test, exclude app:**), so the module under
  test loses its test entries and suites report no tests. Harness locks
  now load the package as first-party source (src: ..) instead of a
  self-replacement.
- Dependency parameters on harness ns.dependency entries no longer reach
  modules under the linker's component-namespace ownership, and dropping
  the entries avoids duplicate-root conflicts with the deps modules
  declare themselves. Requirement values are bound as -o defaults in
  each test Makefile, and CI runs make test / make lint so local runs
  and CI stay identical.
- src/facade/test/public was a committed symlink that landed in the
  published pack; the artifact tree digest rejects symlinks, failing
  every install that resolves facade from a directory. The facade
  harness now points public_files at ../public via override instead.
- relay user hub suite: convert dead test.expect fluent calls to the
  real wippy/test API and grant process.send to the test user scope --
  the hub actor's welcome payload was silently dropped without it.
  embeddings: same for two dead expect() assertions.

All nine suites pass locally on v0.3.21a: 1447 tests, lints clean.
@wolfy-j
wolfy-j merged commit d60ecfd into master Jul 18, 2026
18 checks passed
@wolfy-j
wolfy-j deleted the fix/test-harness-current-cli branch July 18, 2026 01:19
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