Skip to content

Releases: foundryside-dev/plainweave

Plainweave 1.2.1

Choose a tag to compare

@tachyon-beep tachyon-beep released this 01 Jul 10:16
de70e42

Error-legibility (functional-honesty) fixes surfaced by clean-room dogfooding: an error must
say what it knows, and a hint that doesn't point at the real fix misdirects. Additive and
backward-compatible — the weft.plainweave.error.v1 envelope and the ErrorCode vocabulary
are unchanged.

Fixed

  • Version-conflict errors now disclose the actual version. A CONFLICT on a requirement
    version or a draft revision previously reported only "expected version does not match current version" with empty details, forcing callers to probe for the real value. Both optimistic-
    concurrency guards now name the expected and current values in the message, in structured
    details ({expected_version, current_version} / {expected_draft_revision, current_draft_revision}), and in a hint that names the recovery
    (e.g. Retry with --expected-version 0.).
  • Cause-specific error hints; dropped the misleading blanket hint. _error no longer stamps
    "Refresh local Plainweave state and retry." on every error — it misdirected, e.g. a missing
    --actor VALIDATION error, down a dead path. Each error now carries a cause-appropriate hint
    from a per-ErrorCode map (VALIDATION/NOT_FOUND never claim staleness; CONFLICT legitimately
    suggests a refetch), with precise hints for the missing-actor, verification-method /
    evidence-status, and trace-relation cases, plus an honest INTERNAL hint on the MCP
    preflight-severity guard.

Plainweave 1.2.0

Choose a tag to compare

@tachyon-beep tachyon-beep released this 29 Jun 23:29
50afcd6

Closes the CLI/MCP parity gap for the 1.1 peer-facts producers (they shipped MCP-only),
delivers the operator web UX + accessibility overhaul, hardens three federation seams,
ships the plainweave-workflow agent skill, and fixes the wheel build. Additive and
backward-compatible; the new surfaces are advisory and verdict-free like the rest of
Plainweave.

Added

  • plainweave wardline-peer-facts [--json] [--limit N] [--offset N] — surfaces the
    full weft.plainweave.wardline_peer_facts.v1 envelope over the CLI (previously MCP-only),
    reusing the existing MCP surface. Reads .wardline/*-findings.jsonl only (no store
    required); an absent .wardline/ reports freshness: unavailable, never clean.
  • plainweave requirements-enrichment <entity_ref>... [--json] — surfaces the full
    weft.plainweave.requirements_enrichment.v1 envelope over the CLI (previously MCP-only).
    Accepts a SEI or a dotted locator; preserves the no-silent-clean contract
    (present/absent/unavailable — an identity gap is unavailable, never absent).
    Now consumed live by Warpline as the 4th consult_federation member (Warpline PDR-0008;
    validated end-to-end, Plainweave PDR-017).
  • Frozen degraded-state contract for weft.plainweave.loomweave_catalog.v1 — the
    Loomweave catalog producer's unavailable-adapter envelope is now pinned by a structural
    validator + golden routed through the same oracle as live output (no-silent-clean: an
    unavailable adapter never returns a clean-empty page). Seam-hardening, no behavior change
    (PDR-018, production blocker #3).
  • Contract test for the Filigree seam — pins open_linked_work as reserved-but-never-
    emitted by the local-only producer (absence is the in-band linked_work_facts_unavailable
    warning), the filigree_issue trace opacity + canonical relations, and the dossier's
    advisory boundary (PDR-018, production blocker #5).
  • plainweave-workflow skill pack — a federation-standard agent skill (SKILL.md +
    reference sheets) authored in-package (src/plainweave/skills/), shipped as package data
    and dogfooded into the repo's .claude/ + .agents/ skill trees. Documents the
    read/author/verify workflow, the doctrine invariants (advisory-only, no-silent-clean,
    enrich-only, zero minted SEIs), and the cross-member peer-facts seams.

Changed

  • Operator web UI — UX + accessibility overhaul (PDR-016) — adopted the site-kit design
    tokens and fixed contrast, focus-ring, and target-size; restored readable visited primary
    anchors (a global a:visited rule had out-specified .btn--primary, dropping the link to
    a ~1.7:1 WCAG AA failure once visited); and now dismiss toasts on every page (moved to
    base.html so script-less pages such as the requirement dossier are covered too).

Fixed

  • Loomweave read-path trace enrichment now honors the local_only authority boundary
    (RED-2)
    — the read path no longer reaches past the local store when the boundary is set.
  • requirements_enrichment now drops rejected trace links before building the view — a
    reviewed-and-rejected binding no longer reads as requirement coverage (present); a
    rejected-only entity that resolves locally reads absent. (Folded in from a sibling
    product's contract work.)
  • plainweave doctor Wardline-findings remediation is now root-aware (cd <root> && wardline scan . when the inspected root is not the cwd). (Folded in from a sibling
    product's contract work.)
  • ADR-006 now documents that the preflight producer emits 8 of its 11 fact kinds and why the
    other three are superseded (dedicated wardline producer) or sibling-gated (Filigree); added
    the previously-missing behavioral coverage for the orphaned_entity_link fact (PDR-018,
    production blocker #4).
  • Wheel build (PDR-017) — removed a redundant
    [tool.hatch.build.targets.wheel.force-include] block that re-mapped web/templates +
    web/static (already vendored by the src/plainweave src-layout), colliding on
    web/static/.gitkeep and breaking uv build. The wheel now builds with each web asset
    shipped exactly once, so a clean uv tool install again advertises every CLI verb — this
    was darkening Warpline's requirements federation member in practice.