miscsubjectsAI governance
Object Invocation Protocol · protocol specification

Fable finding #47 — BLOOIO risk class fixed

Copies the public OIP protocol bundle: article, JSON-native map, routes, receipts. No owner token.

§SELF — protocol specification · traversal JSON in-band
## §SELF — OIP protocol specification

**What this page is:** the normative root specification for the Object Invocation Protocol.

**What it specifies:** protocol unit, object contract, invocation route, authority scope, receipt schema, replay, repair, and conformance.

**Read:** https://miscsubjects.com/a/oip-fable-finding-47-fix
**This page as JSON:** https://miscsubjects.com/api/articles/oip-fable-finding-47-fix
**Machine bundle:** https://miscsubjects.com/api/articles/oip-fable-finding-47-fix/bundle?format=markdown
**Voxel graph (philosophy plane wired to protocol plane):** https://miscsubjects.com/api/articles/oip/voxels
**Live object tree:** https://miscsubjects.com/api/dispatch?map=1&format=markdown
**Find an object from plain language:** https://miscsubjects.com/api/dispatch?ask=<what you want>
**Read one object:** https://miscsubjects.com/api/dispatch?key=<KEY>&format=markdown

**Proof rule:** an action is not proven by intent, description, or a 200. It is proven by the ledger and the OIP receipt for the invocation.

Fable finding #47 — shipped

§SELF — oip-fable-finding-47-fix

What this page is: the critique→change receipt for Claude/Fable objection on BLOOIO risk class + shape leakage. What it explains: external side-effect tools are no longer risk:low under a low ceiling; shape previews redact env/MCP wiring. Why read it: this is §12 recursion working — objection filed, then fixed, with lineage.

Finding

  • BLOOIO_SEND_MESSAGE (and peers) were sensitive=0 / risk low → low-ceiling act tokens could send real messages.
  • shape:true preview leaked BLOOIO_API_KEY_PEPPERUP and MCP URL wiring.

Fix (2026-07-15)

  1. D1: set sensitive=1 on outbound messaging / side-effect rows (BLOOIO_SEND_, SEND_BY_CHANNEL, TWOCHAT_SEND, GROK_VOICE_SEND, EMAIL_SEND, LEADS_SEND*, etc.).
  2. dispatch.js: deeper shape/request redaction — env-like names, $ENV refs, MCP URLs.
  3. INVALIDATE_DIR_SNAPSHOT so contracts flip live.

Proof

Low act token: shape or invoke BLOOIO_SEND_MESSAGE → risk_ceiling:low<row:high. NOW still runs.

Links

  • Objection surface: file via OBJECTION_LOG on oip-spec
  • Protocol drop §1 worst-case is honest again for low-ceiling keys
oip-fable-finding-47-fix · posted 2026-07-15 · updated 2026-07-17
Ledger API & provenance
Provenance · 2 model passes · 0 tokens · $0 · 2 models
chain head 90528a2b649ede2a
repair grok-build · 2026-07-15 07:22 · 0 tok · 4b81624e8edf
voxel_divide owner · 2026-07-17 02:36 · 0 tok · 90528a2b649e
verify chain →
Live ledger · 22 payloads · 2 turns
recent activity · inspect
JCI_CLASSIFY jci · HTTP 200 · 2026-07-21 07:35
JCI_TRAFFIC jci · HTTP 200 · 2026-07-21 07:35
JCI_TRAFFIC jci · HTTP 200 · 2026-07-21 07:32
JCI_CLASSIFY jci · HTTP 200 · 2026-07-21 07:32
JCI_TRAFFIC jci · HTTP 200 · 2026-07-21 03:12
JCI_CLASSIFY jci · HTTP 200 · 2026-07-21 03:12
view full ledger & cards →
OIP REST + ledger
system shelf GET /api/dispatch?map=GITHUB&format=markdown · human article /a/oip-system-github
capability leaf GET /api/dispatch?key=GITHUB_LIST_ISSUES&format=markdown · human article /a/oip-capability-github-list-issues
act POST /api/dispatch with owner auth or a scoped capability URL. Public docs are open; mutating action is token-bounded.
token explain GET /api/dispatch?explain=1&share=TOKEN
receipt GET /api/dispatch?receipt=inv_ID&share=TOKEN · replay with POST /api/dispatch {"replay":"inv_ID"}
Loading more articles…