Repository navigation
Description
F12.14 — Portals (cross-world messaging)
From the Phase 12 plan (.opencode/plans/phase-12-platform-flexibility.md, workstream E):
Cross-world messaging through a capability that both worlds' admins have granted, with bounded rate and size and an audit entry on each side. Depends on F12.4 (registry) and F12.6 (audit).
Exit: two worlds exchange a message only when both sides have granted the portal.
Coordination (2026-10-26 reprioritization, per Drew): every id roadmap item now has its own GitHub issue, and priority encodes the order: (1) the path to Phase 12 — now + priority/high; (2) Phase 12 itself — next; (3) Phase 13 and long-term ideas — priority/low. The dashboard mirrors this list (org Project "Developing Today" #4, Area id-train; Grist Program roadmap, Area id). If this item turns out to be blocked, wrong, or superseded, park or close it with a note rather than letting it stall the queue — dropping an issue is always allowed; silently stalling is not.
Acceptance criteria
- Two worlds exchange a message only when both sides' admins have granted the portal — demonstrated by tests for granted and ungranted combinations.
- Portal messages are rate- and size-bounded, with the bounds enforced and tested.
- An audit entry is written on each side for every portal message.
- Dependencies F12.4 provider registry (id: F12.4 provider registry — capabilities as manifest + provider components #1061) and F12.6 audit log (id: F12.6 audit log and OpenTelemetry export #1063) are in place or stubbed behind the same grant check.
Activity
developing-today commentedon Oct 27, 2026
CODE-212
dezren39 commentedon Oct 27, 2026
Intake review
Related: Depends on: F12.4 #1061, F12.6 #1063 · Phase 12 plan workstream E (
.opencode/plans/phase-12-platform-flexibility.md)Notes: F12.14, Phase 12 (
nextband). The mutual-grant rule is the whole design — a one-sided grant must be a refusal, not a warning. Filed 2026-10-27; still live, no implementation yet.Risks: Cross-world messaging is an abuse surface: bounds and audit are acceptance items, not follow-ups, or the portal ships unsafe.
Suggested approach: Implement the grant check as a single choke point both send and receive paths pass through; audit at the same point so no path skips it.
Labels were already normalized by the filer (kind, source/human, status/needs-triage, priority, effort, app/id all present); this pass appended the acceptance criteria above and adds
meta/enriched.🤖 Agent note · filed
7 remaining items
dezren39 commentedon Nov 1, 2026
🤖 Agent note · picked up
ses_e5e67845fe5ffeegrD5G8PlIdDdezren39 commentedon Nov 1, 2026
🤖 Agent note · blocked
ses_e5e67845fe5ffeegrD5G8PlIdD26bed62b8has no registry/audit symbols, and no matching implementation PR was found. Queue task 4888 blocked with reason classdependency; no worktree or code changes were made.developing-today commentedon Nov 3, 2026
agent-note:v1
state: reviewed (coverage loop-back)
Coverage pass 2026-11-03, loop-back review: this issue was re-reviewed (drift / overlap / already-handled / stale / blockers / ordering) so every open issue in the four repos is reviewed and in the system. Verdict: still live; in the system as task 4888 (small_fix, blocked, priority 50) in repo-health-code-pilot. Labels audited and synced. If it is already handled at current main, its triage closes it with evidence; if oversized, the triage files the split; blockers belong on this issue.
Found via: coverage loop-back 2026-11-03
dezren39 commentedon Nov 3, 2026
F12.6 dependency gate update
Reviewed via triage task 6819. The #1063 triage gate moved from unverified to a confirmed disposition, but its implementation prerequisite has not landed: PR #4017 (structured audit slice 1) remains open and unmerged, and current main lacks the implementation. Therefore #1063 does not yet satisfy this dependency. Keep task 4888 blocked pending merge of #4017, and continue checking #1061 independently. No portal implementation was started.
Links: #1063 · PR #4017 · queue task 4888