Repository navigation
Closed
Labels
app/idPackage/app: id (pkgs/ or apps/ in this repo)Package/app: id (pkgs/ or apps/ in this repo)kind/designA design proposal (design-architect): multi-step, phased, decision-bearingA design proposal (design-architect): multi-step, phased, decision-bearingpriority/normalOrdinary priority (the default)Ordinary priority (the default)task/small-fixQueue packet kind: bounded fix with reproduction and targeted testsQueue packet kind: bounded fix with reproduction and targeted tests
Description
Part of the worlds design program: #5955. Statements S78–S81 of the 2026-11-04 brief.
Requirement (Drew, in substance)
We're trying to build a real place in the virtual world to allow people to share, create, and deal with one another without absolutely requiring our own interaction:
- We might not even host them. They could do it all on their own.
- They could use our Rust libraries to take the appropriate parts to build their own client or subsystem — which technically rides along the same protocol networks but is entirely separate and doesn't automatically work for our intercompatibility requirements. Or ideally, it does.
- Maybe it works perfectly, and they just don't want to have our chat and world system and want to host their own servers: it's the exact same system, but they're just using it in a different way, and that should all work.
Design points to settle
- What is the interop contract exactly: which parts are load-bearing for intercompatibility (wire format, identity, capability negotiation, registry format) and which are our product choices on top (chat UI, our registry, our permission defaults)? A third-party server that implements the contract interoperates; one that doesn't is merely separate — the design must make that line explicit and testable.
- Conformance: the adapter conformance harness / interop matrix in #5814 is the natural home for "does it actually interoperate" — this design states the stance, that issue builds the proof.
- Self-hosting a subset: run worlds without chat, run chat without worlds, run only the registry — which subsets are supported shapes vs accidents?
- Defaults travel or don't: our permission defaults, license policy defaults (licensing children of #5955), and moderation defaults are server-admin choices on a self-hosted server, not protocol requirements. Say so in the design, because the AGPL/licensing analysis depends on self-hosting being genuinely possible.
- Boundary enforcement across bridges/federation/relays is #5882; residency implementation is #5529. This issue is the stance those implement.
Related
- Wire format & transport adapters: #5674
- Adapter conformance harness & interop matrix: #5814
- Writer sets v2 / federation: #5789
Done looks like
A short stance doc: the interop contract's load-bearing list, supported subset shapes, and what is explicitly not required of a self-hoster.
Metadata
Metadata
Assignees
Labels
app/idPackage/app: id (pkgs/ or apps/ in this repo)Package/app: id (pkgs/ or apps/ in this repo)kind/designA design proposal (design-architect): multi-step, phased, decision-bearingA design proposal (design-architect): multi-step, phased, decision-bearingpriority/normalOrdinary priority (the default)Ordinary priority (the default)task/small-fixQueue packet kind: bounded fix with reproduction and targeted testsQueue packet kind: bounded fix with reproduction and targeted tests
Activity
developing-today commentedon Nov 5, 2026
CODE-1641
dezren39 commentedon Nov 5, 2026
Wave-2 follow-ups filed from the prior-art research (Lane B). Granular sub-scopes of this issue, each carrying the relevant research findings + citations:
Research source:
workspace/scratch/worlds-capabilities-brief-2026-11-04/prior-art-research.md. Full wave-2 mapping:workspace/scratch/worlds-capabilities-brief-2026-11-04/wave2-map.md.dezren39 commentedon Nov 5, 2026
🤖 Agent note · done (triaged)
Triage findings (task 10344, 2026-11-05)
Still live; no stance doc exists yet. Issue #5975 is OPEN with no hard-stop labels. Code search against current main finds no self-hosting stance document under
doc/and no interop-contract statement (the generic "interop contract" hits are unrelated investigations). Nothing filed duplicates it: the neighbours are the mechanisms this stance governs, not the stance itself.Ordering (all verified OPEN by fresh
ghchecks this run):Scoped next step (when worked): the short stance doc from the issue's "Done looks like": (1) the interop contract's load-bearing list, (2) supported subset shapes vs accidents, (3) what is explicitly not required of a self-hoster, with issue #5814 named as the conformance proof obligation for each load-bearing item. No decision from Drew is needed — the stance restates his requirement in substance (S78–S81); no implementation task is enqueued (design-first).
19 remaining items
docs(id): self-hosting and interop stance decision record (#5975) (#7602
dezren39 commentedon Nov 8, 2026
🤖 Agent note · done
doc: land/parcel capability-domain design note (#6015) (#7601)