chore: consolidate outstanding work onto main (ADR-054 FFI fix + conformance oracles)#72
Merged
Merged
Conversation
Consumer side of the wardline->loomweave wardline-taint-1 taint-fact store seam. Vendors wardline's authority golden BYTE-IDENTICAL + a Layer-1 blake3 byte-pin + a NON-CIRCULAR oracle that drives loomweave's REAL storage API (loomweave_storage::wardline_taint): resolve_wardline_qualname -> upsert_taint_fact -> get_taint_facts, asserting each fact's wardline_json blob round-trips verbatim (key order included) off loomweave's store and content_hash_at_compute is preserved (queryable column + in-blob). Layer-2 drift recheck vs wardline authority (WARDLINE_REPO), skip-clean absent. 5 tests pass (cargo nextest). Boundary documented: drives the storage functions the cli HTTP handlers call; HTTP layer is pub(crate), covered by cli's own tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…escriptor seam Consumer side of the trust-vocab descriptor seam. loomweave's python plugin vendors wardline's authority golden BYTE-IDENTICAL (same blob f5ad8d2) + a Layer-1 byte-pin + a NON-CIRCULAR oracle driving the REAL consumer: load_wardline_descriptor (read -> version-gate -> parse) then extractor.extract, asserting the wardline:external_boundary/trust_boundary/trusted tags derive end-to-end via _attach_wardline_entity_metadata. Version-skew proof: a copy with only the version bumped flips status enabled->version_skew (the gate keys on version alone). Layer-2 drift recheck vs wardline authority (WARDLINE_REPO), skip-clean absent. 5 tests pass; plugin suite 220 passed, ruff(ALL)+mypy(strict) clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…mer) Loomweave consumer side of the filigree<->loomweave entity-associations seam. Reconciles the stale vendored fixture (v1) to filigree's authority (v3, byte-identical now) + a Layer-1 blake3 byte-pin + a NON-CIRCULAR oracle driving the REAL parser loomweave_federation::filigree::parse_entity_associations_response (round-trips the opaque binding, tolerates the pre-26 clarion_entity_id alias, ignores unmodelled producer fields, degrades absent->empty). Layer-2 byte-drift recheck vs filigree authority (FILIGREE_REPO) with fail-closed arming (LOOMWEAVE_DRIFT_REQUIRED: SKIP->FAILURE when armed, mirroring wardline's _live_oracle primitive) + 3 unit tests over the 2x2. 10 tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- capabilities PRODUCER: Layer-1 blake3 byte-pin of the /api/v1/_capabilities golden (the live-handler recheck via the real serve binary already existed) - loomweave-scan-results PRODUCER: freeze the emitted ScanResultsRequest body (authored from the real prepare_batch) + byte-pin + non-circular recheck - issue-detail CONSUMER: drives the real IssueDetail parse on filigree's golden (id<-issue_id alias, title/status/priority non-default -> drop/retype reds) All byte-pinned, goldens byte-identical to filigree, Layer-2 drift recheck. loomweave oracles: 5 + 14 + 8 passed (cargo). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ort_name)] FFI entry-points (ADR-054)
`attr_is_ident_in` matched only the bare `#[no_mangle]` / `#[export_name]`
forms. Edition 2024 (this workspace's pinned edition) makes those a hard
error; real FFI code writes `#[unsafe(no_mangle)]`, which syn parses as
`Meta::List { path: "unsafe", tokens: <inner> }`. The export ident was missed,
so every edition-2024 FFI export went un-rooted and read as dead — the
under-rooting failure ADR-054's error-cost asymmetry exists to prevent.
Peel a single `#[unsafe(...)]` wrapper (inner parsed as a full `Meta` to cover
both the bare-path `no_mangle` and the name-value `export_name = "…"` forms)
before the ident check. Add tests for both wrapped forms — the existing FFI
tests used the bare form and masked the gap. Also correct a stale doc comment
in shortcuts.rs that claimed the Rust plugin emits no root tags (false since
ADR-054 shipped them).
Found in detailed pre-push review. Follow-ups filed: clarion-15d11462a6
(module-scope #[allow(dead_code)] / cfg(test) under-rooting), clarion-736ad98353
(root-tag test hardening), clarion-86200a39d2 (http-route faceted precision).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The feat/weft-taint-conformance test files were committed without final fmt/lint passes and tripped three floor gates: - cargo fmt line-wrapping in three Rust conformance oracles; - clippy::doc_markdown backtick on `shape_decl` in serve.rs; - ruff format on the python wardline vocabulary-descriptor conformance test. Whitespace/doc-comment only; no behaviour change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Consolidates the outstanding unmerged work onto
main(per "stop leaving work in branches"). All locally verified green; merge gated on CI.What's included
1.
fix(plugin-rust): root edition-2024#[unsafe(no_mangle)]/#[unsafe(export_name)]FFI entry-points (ADR-054) —2a0bb91attr_is_ident_inmatched only the bare#[no_mangle]/#[export_name]forms. Edition 2024 (this workspace's pinned edition) makes those a hard error; real FFI code writes#[unsafe(no_mangle)], which syn parses asMeta::List { path: "unsafe", … }, so every edition-2024 FFI export went un-rooted and read as dead. Peels a single#[unsafe(...)]wrapper before the ident check; adds tests for both wrapped forms. (This commit was sitting on localmain, never pushed.)2.
test(...): loomweave↔filigree/wardline conformance oracles —feat/weft-taint-conformance(4 commits)Producer/consumer wire-conformance oracles + golden fixtures for: wardline taint-fact wire, wardline vocabulary-descriptor, MCP entity-associations seam, and 3 federation seams. Test + fixture only — zero production-source changes.
3.
style: satisfy fmt/clippy/ruff on the conformance test files —e5b6e4bThe conformance branch was committed without final fmt/lint passes and tripped three floor gates (cargo fmt line-wrapping, a
clippy::doc_markdownbacktick, ruff format on the python test). Whitespace/doc-comment only.Verification (local, full floor)
fmt,clippy --all-targets --all-features -D warnings,build, nextest 1940 passed,doc -D warnings,cargo deny— all green.ruff check,ruff format --check,mypy --strict, pytest 220 passed (87% coverage) — all green.Not included (handled separately)
sync-filigree-fixture-v3/f420ba2: redundant — the identical fixture-v3 change is already contained in the conformance commits.feat/legis-rename-feed-repoint: stale (1 commit, 337 behind, touches the pre-renamecrates/clarion-cli/path) — needs a port-or-abandon decision, not an auto-merge.dependabot/*: bot dependency PRs, reviewed on their own track.🤖 Generated with Claude Code