Skip to content

Publish the Matrix and Octos host-service capabilities - #14

Merged
ymote merged 1 commit into
mainfrom
feat/matrix-octos-service-capabilities
Sep 27, 2026
Merged

ymote merged 1 commit into
mainfrom
feat/matrix-octos-service-capabilities

Conversation

@ymote

@ymote ymote commented Sep 27, 2026

Copy link
Copy Markdown
Collaborator

Publishes the capability contract Rinx ADR 0007 (host-owned Octos app peers) relies on, on main:

  • KNOWN_CAPABILITIES admits the exact A2App-compatible matrix.* service names (45) and the four assistant services octos.session.open, octos.session.history, octos.turn.start, octos.turn.interrupt.
  • Admission matches exact registered names. A prefix (octos., matrix.) or an invented name (octos.admin, octos.peer.prepare, Octos.turn.start) stays an unknown capability and the manifest is refused.
  • History access does not grant turn execution; each service is its own consent. A service grant is not an app agent.
  • New services module: plain words for every service (the store's permission list uses them), OCTOS_SERVICES, MATRIX_ACTIONS; the privacy summary separates Matrix reads from Matrix actions and says the assistant's keys stay with the device.
  • docs/PUBLISHING.md documents the services, and that hosts still intersect declarations with supported services, host policy and per-instance grants.

Supersedes #8 (revision b0591e2c, which added the names without tests or store wording). Consumers currently pinning b0591e2c resolve the same names from this revision.

Validation (no CI in this repo; local gate):

  • cargo test --workspace in the prepared sibling layout (makepad cd812acd, Octoscript-Makepad 463e3da8, Octoscript 68f6a9df): all pass — app-policy 12 unit + 28 admission + 1 doc, app-hub 13 + 2, appstore/app-hub-app suites unchanged and passing.
  • New tests: each_published_assistant_service_is_admitted_by_its_exact_name, an_assistant_prefix_or_invented_service_is_refused, reading_assistant_history_does_not_grant_starting_a_turn, matrix_services_are_exact_and_reading_does_not_grant_sending, the_store_says_what_a_service_grant_allows, every_service_name_is_a_known_capability_and_has_words, a_prefix_or_a_near_name_is_not_a_service; the existing every_known_capability_is_told_in_plain_words now covers all 49 services.

🤖 Generated with Claude Code

Admit the exact A2App-compatible `matrix.*` service names and the four
`octos.*` assistant services (`octos.session.open`, `octos.session.history`,
`octos.turn.start`, `octos.turn.interrupt`) that Rinx serves to mini apps.
Admission matches exact registered names: a prefix such as `octos.` or an
invented `octos.admin` stays an unknown capability, and history access does
not grant starting a turn. The store tells the person what each service
allows in plain words, and the privacy summary separates Matrix reads from
Matrix actions.

This is the capability contract ADR 0007 (Rinx) relies on for host-owned
Octos app peers. It replaces the untested revision b0591e2 (#8).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@ymote
ymote merged commit 9e98613 into main Sep 27, 2026
@ymote
ymote deleted the feat/matrix-octos-service-capabilities branch September 27, 2026 01:53
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