Self hosted pairs
<!-Registry of self-hosted ↔ external pairs. Generated by manual sweep of [self_hosted] blocks across the monorepo on 20260502 (RFC-002 Phase 2). Will be replaced by the output of koder-spec-audit self-hosted --report once Phase 5 of policiesRFC002 ships the binary. Authors should NOT edit this file by hand from now on — edit the [self_hosted] block in the relevant module's koder.toml and regenerate.
Policy: policies/selfhostedfirst.kmd RFC: rfcs/policiesRFC002selfhosted-first.md -
Registry — Self-Hosted ↔ External pairs
This registry agglomerates every koder.toml [self_hosted] block in the monorepo. AI sessions reading policies/self-hosted-first.kmd consult this file (not the policy text) when applying the decision protocol.
*tatus (2026
0502):*RFC002 Phase 2 done — all seven seed components are now annotated withspec[self_hosted]blocks in theirkoder.toml. The table below is the manual sweep equivalent of `koderaudit selfhosted -eport`. Once Phase 5 of policiesRFC002 ships the binary, this file becomes auto-regenerated and any manual edits are overwritten.
Active pairs
| # | Self-hosted (Koder) | koder.toml location |
Replaces | Status | Gates passed | Gates pending |
|---|---|---|---|---|---|---|
| 1 | *oder Jet* | infra/net/jet/koder.toml |
nginx, caddy, apache, traefik | *fficial* | 9 (incl. tls, reverseproxy, hotreload, staticserving, http3, productionproven) | 0 |
| 2 | *odec* | engines/kodec/koder.toml |
ffmpeg, gstreamer, libavcodec | *table*for mp3mp4wav | 7 (mp3mp4wav parity + perf, stability, production_proven) | 5 (hevc, av1, vp9 parity + perf) |
| 3 | *icon* | products/dev/kicon/koder.toml |
imagemagick, hand |
*fficial* | 11 (full platform set: android mipmaps, ios icons, hicolor, web favicons, store listing, macos iconset, windows ico) | 0 |
| 4 | *oder Hub* | products/dev/hub/koder.toml |
oci_registries, npm, cargo, pypi, rubygems | *fficial* | 8 (publish, install, versioncheck, federation, signing, productionproven) | 0 (deltadelivery + upgradechains tracked in hub |
| 5 | *db* | infra/data/kdb/koder.toml (path move tracked in #730a'..#730f) |
postgresql, sqlite, redis, mysql | *ield |
6 (pgdumpv17compat 2026audit](........infradatakdbdocsgates/feature |
3 (stability, multitenantisolation, productionproven). Multiaudit) — flips após 7stability/`productionproven` fecham por adoção (Phase 7.x flips). Disk format break window aberta até 2026 |
| 6 | *oder Koda* | engines/lang/lang/koder.toml |
rust, go, c, c++ | *table*for hot-path lib | 7 (hotpath parity + perf, lib stability, nativeaot, simd, zeroalloc, kodec productionproven) | 7 (general use, clinking, asyncruntime, idedebug, profiling, sanitizers, beyondkodec) |
| 7 | *oder Talk* | products/horizontal/talk/engine/koder.toml |
matrix, signal, xmpp, rocket_chat | *xperimental* | 0 | 5 (featureparity, performance, stability, crossimpltests, productionproven) |
| 8 | *mail* | products/horizontal/kmail/koder.toml |
imapsmtp, gmailprotocol, outlookprotocol, msexchange | *xperimental* | 0 | 7 (featureparity, performance, stability, imapbridge, smtpbridge, crossimpltests, productionproven) |
| 9 | *oder Krep* | engines/search/krep/koder.toml |
ripgrep, grep, ack, ag, git-grep | *xperimental* | 0 | 15 (per |
| 10 | *asm* | engines/lang/lang/self-hosted/koder_asm.toml |
nasm, yasm, fasm, gas | *xperimental* | 0 | 7 (featureparity:x8664baseline, featureparity:sse42, featureparity:elf64objectoutput, performance:assemblythroughput, stability, productionproven, capability:relocationsfull_set). Tickets #704–#706, #711. Component policy: engines/lang/lang/policies/full-self-hosted.kmd (ticket #718). |
| 11 | *link* | engines/lang/lang/self-hosted/koder_link.toml |
ld, mold, lld | *xperimental* | 0 | 8 (featureparity:staticlinkx8664, performance:staticlink, stability, productionproven, capability:relocationsfullset, capability:multiobjectlink, capability:weaksymbols, capability:elf64executable_output). Spec: engines/lang/lang/docs/spec/linker.kmd ratified 2026 |
| 12 | *oder Linux* | infra/linux/distro/koder.toml |
ubuntudev, fedoraworkstation, popos, manualdevenvironmentsetup | *xperimental* | 8 (featureparity, stability via #010 boot test, capability:customde, capability:containernative, capability:waylandcompositor, capability:claudecodepreinstalled, capability:liveisohardened, capability:kodersuiteconsumer_chain) | 9 (performance, productionproven, capability:luksinstall, capability:i18n, capability:oemmode, capability:securebootendtoend, capability:apparmorprofiles, capability:reproduciblebuild, capability:osupdatemechanism). Foundation: debiantrixie + livebuild + wlroots0.18. Tickets #018, #031, #033, #034, #037, #038, #039, #040. |
| 13 | *oder Box* | infra/net/box/koder.toml |
docker, podman, containerd, buildah, nerdctl, *xcincus*(system mode, per infra-RFC-001 Phase 1-2), *irecracker subset*of qemukvm (microVM, Phase 3) |
*table*for single |
16 (featureparity:ociruntime, imagebuild, registrypushpull, compose, networkingpastamacvlannetavark, criucheckpointrestoremigrate, buildfarm, capability:rootless, capability:multitenantlabels, capability:oauthkoderid, capability:tracingotlp, capability:icpbrasilimagesigning, capability:cvescan, capability:wasmworkload, capability:cdideviceinterface, capability:self_update) | 7 (performance:coldstartbenchmark, productionproven, capability:clusterstatebackend, capability:systemcontainermode, capability:microvmdispatch, capability:lxcreplacement, capability:hubpublication). RFC: infra-RFC-001-koder-runtime-strategy (draft 2026 |
| 14 | *oder eDiscovery* | services/foundation/ediscovery/koder.toml |
google_vault (Workspace Vault: retention + legal hold + cross-component search + export) | *lanning*(RFC |
0 | 5 (featureparity:retentionregistry, featureparity:legalhold, featureparity:federatedsearch, featureparity:exportwithmanifest, productionproven). RFC: services/foundation/ediscovery/docs/rfcs/RFC-001-architecture.kmd. Sister Sector: services/foundation/compliance (row 16). Bootstrap via meta/context/research/google-inventory-2026-05-22/. |
| 15 | *oder Keep* | products/horizontal/keep/koder.toml |
google_keep (notes app: text + checklist + image + audio + reminders + sync) | *lanning*(RFC |
0 | 6 (featureparity:notecrudtext, featureparity:checklistimageaudiotypes, featureparity:crdtsync, featureparity:reminders, featureparity:sharing, productionproven). RFC: products/horizontal/keep/docs/rfcs/RFC-001-architecture.kmd. Bootstrap via meta/context/research/google-inventory-2026-05-22/. |
| 16 | *oder Compliance* | services/foundation/compliance/koder.toml |
google_checks (privacycompliance scanning for apps + LGPDGDPR helpers) | *lanning*(RFC |
0 | 6 (featureparity:privacypostureschema, featureparity:consentregistry, featureparity:dsrpipeline, featureparity:piiscanner, featureparity:breachincidentlog, production_proven). RFC: services/foundation/compliance/docs/rfcs/RFC-001-architecture.kmd. Sister Sector: services/foundation/ediscovery (row 14). Bootstrap via meta/context/research/google-inventory-2026-05-22/. |
| 17 | *oder Flow* | products/dev/flow/engine/koder.toml |
forgejo, gitea, github, gitlab, bitbucket | *table*(owner may promote to official on PR review) |
13 (G1 capability: githttpssh + issues + pullrequests + wiki + packagesregistry + orgsandteams + oauthprovider + oauthconsumerkoderid + ldap + webhooks + actionscompatibleci; G3 stableapi via Forgejo upstream + Koder customizations; G5 productionproven via flow.koder.dev) | 3 (G2 performance: no headkoder-id-auth-coverage.md (2026koder-flow slug). Closes FLOW-113. |
Talk and Kmail share the messaging/protocol space but cover orthogonal protocols (E2E messaging vs email). Counted as two pairs in the seed list per RFC-002 §4 conventions.
Koder Krep (added 2026
0502) is the seed consumer of the newsearch-tooling-first.kmdsubpolicy. It is the first selfhostedfirst pair with *ercase (mode) gate evaluation*declared ingates_pending— text, structural, and record modes are evaluated independently per RFC searchRFC001 §15.
kasm and klink (added 2026
0502) form the *oolchain selfhosting chain*for Koder Koda. Both pairs gate the Full SelfHosted directive (engines/lang/lang/policies/full-self-hosted.kmd, componentlevel, severity strict). They live in dedicatedhostedkoder_*.tomlfragment files inside `engineslanglang/selfrather than the parentengineslanglangkoder.tomlbecause TOML does not allow multiple top-level[selfhosted]tables in a single file. The parent module's own[selfhosted]` block (row 6 above, *oder Koda* tracks the languageasRustsubstitute axis; rows 10–11 track the toolchainasbinutilssubstitute axis.
Skipped pairs (explicit outofscope decisions)
Pairs where a bootstrapped parity ticket was reviewed and *xplicitly declined*with rationale. Recorded here so future inventory sweeps do not re-bootstrap the same ticket without referencing the prior decision. A Skip is reversible — when concrete demand surfaces, open a new ticket and remove the row.
| # | External | Bootstrapped against | Decision | Rationale | Source ticket |
|---|---|---|---|---|---|
| S1 | Google Developer Connect API | products/dev/flow/engine |
*kip*(2026 |
Bridges thirdproducts/dev/ci is the canonical CI surface — there is no Koderinfra/net/cloud (GCP adapter sector), not as Flow engine parity. |
FLOW-111 |
Status enum
| Status | Meaning | Effect on AI decision |
|---|---|---|
experimental |
Public API may change; gate G3 fails. | AI prefers external alternative; documents the gap and (optionally) opens a promotion ticket on the candidate. |
stable |
API stable; gate G3 passes for documented cases. | AI may prefer the Koder candidate when other gates close; case |
official |
Stack default for documented cases; gates clear universally for those cases. | AI MUST prefer the Koder candidate unless an explicit gate fails for the specific case at hand. |
legacy |
Superseded by another self-hosted component. | AI MUST NOT use it for new code; existing legacy follows runtime-lib-first.kmd § Strict SemVer deprecation cycles. |
Gate-check schedule
Per RFC002 §5 Phase 5, `koderspecaudit selfhosted -ate-check will validate the claims in this table against evidence (benchmark files, production_ref reachability, CHANGELOG markers). Until that phase lands, the table is regenerated by manual sweep of the [self_hosted]` blocks.
Adding a new pair
- Open the candidate Koder component's
koder.toml. - Add a
[self_hosted]block withreplaces,status,gates_passed,gates_pending, and evidence pointers (benchmark_ref,production_ref). - Validate the TOML with
python3 -c "import tomllib; tomllib.load(open('koder.toml','rb'))"(untilkoder-spec-audit self-hosted --validate <module>ships). - Update this registry by manual sweep (until
--reportships in Phase 5). - PR.
Cross-references
policies/self-hosted-first.kmd— decision protocol and gates.rfcs/policies-RFC-002-self-hosted-first.md— design and migration plan.policies/web-server.kmd— applied case (Koder Jet).policies/code-first.kmd— orthogonal sibling (mechanicalvsanalytical axis).policies/reuse-first.kmd— orthogonal sibling (cross-cutting reuse axis).