Skip to content

feat(surfaces): wire B11/E11/turn-witness to a live feed (campaign gap #4) - #269

Merged
mdheller merged 1 commit into
mainfrom
feat/surface-live-feed
Aug 3, 2026
Merged

feat(surfaces): wire B11/E11/turn-witness to a live feed (campaign gap #4)#269
mdheller merged 1 commit into
mainfrom
feat/surface-live-feed

Conversation

@mdheller

@mdheller mdheller commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Closes the '#4 wire surfaces to live state' item of the feature-gaps-zero campaign.

The Tier-2 surfaces no longer hard-code their data. Each now:

  • fetches ./data/<name>.json (or window.SURFACE_FEED_URL when the shell injects a live endpoint) at load;
  • falls back to its embedded seed if the fetch fails (so the Artifact preview still works under CSP);
  • shows a LIVE / SAMPLE badge — an instrument that declares its own provenance, per the diagram-is-a-witness doctrine.

Added:

  • docs/surfaces/data/{b11,e11,turn-witness}.json — the feeds (currently provenance: "sample" seeds).
  • tools/build_surface_feed.py — the producer/seam: validates required keys per surface, stamps provenance+generated_at, emits the feed. Runtime calls it with real state (netwatch snapshot · consent-plane catalog · receipt stream · App-Intents parser) → provenance=live.
  • tools/test_build_surface_feed.py — 7 tests (green).
  • docs/surfaces/data/README.md + doctrine note.

Verified: 7 pytest pass · all feed JSON valid · all three wired surfaces pass node --check · producer round-trips and preserves extra keys (b11 state).

…#4)

Each Tier-2 surface fetches ./data/<name>.json (or window.SURFACE_FEED_URL),
falls back to embedded seed, and shows a truthful LIVE/SAMPLE provenance badge.
Adds tools/build_surface_feed.py (validates shape, stamps provenance/generated_at)
+ 7 tests + data feeds + data/README. JS syntax-checked; producer round-trips.
@mdheller
mdheller merged commit 25c3e49 into main Aug 3, 2026
7 checks passed
@mdheller
mdheller deleted the feat/surface-live-feed branch August 3, 2026 08:58
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