Skip to content

identity config

Provenance

  • Source: .spec/spexcode/spec-cli/host-gateway/identity-config/spec.md
  • Source SHA-256: 676db5f1e557eed539c18295be395643417df8d46353a943210d62ce7a3e16bc

Identity has exactly two authored sources. A project's human-readable source is its committed spexcode.json dashboard.title and dashboard.icon; the gateway icon is the one host-level gateway.icon value in SPEXCODE_HOME/config.json. Neither value is copied into the other tier.

Backends and the host catalog carry only a resolved {title, icon} projection. Missing values receive stable defaults. Every backend registers the actual git tree it serves: a linked worktree gets its own encoded endpoint/catalog id and cannot overwrite the main checkout's slot. The live instance answer repeats that actual root, so merely claiming another checkout cannot pass validation.

The host exposes narrow, admin-authorized structured icon writes. A project write revision-checks and updates only dashboard.icon in that project's portable JSON, including while its backend is offline; a gateway write revision-checks and updates only the host config. Both accept the shared resolver's registry ids and well-formed Iconify names and are atomic. Raw project-config editing remains the general settings surface, not a second identity store; arbitrary legacy emoji/URL values remain readable without becoming new structured-write choices.