Monorepo for Tangled forked from tangled.org/core

nix/vm: persist AT Protocol state via 9p and create default label definitions #28

Open nolith.dev
targeting master from local-dev
Open opened by and assigned to nolith.dev
targeting master from local-dev

Add 9p shared directory for AT Protocol state (PLC/PDS/Jetstream data and owner DID) so that identities survive VM reboots even when the qcow2 disk is deleted.

Key changes:

  • Bootstrap script handles existing accounts (login fallback when createAccount fails with persisted PDS data)
  • Creates default label definitions (wontfix, good-first-issue, duplicate, documentation, assignee) via com.atproto.repo.putRecord
  • PostgreSQL (PLC) backed up via pg_dump on shutdown, restored via psql on boot only when the database is empty (qcow2 was deleted)
  • PDS_HOSTNAME set to "localhost" (not "localhost:port") to avoid https:// URL generation that breaks OAuth loopback validation
  • PDS/Jetstream data synced via mkDataSyncScripts
  • Owner DID written to both VM disk and 9p mount for host-side access
  • Use dev@example.com and tangled-dev.test handle for bootstrap account

Signed-off-by: Alessio Caiazza code.git@caiazza.info

Commits 8

nix/vm: persist AT Protocol state via 9p and create default label definitions
docs: add fully offline development guide
nix/vm: run AT Protocol stack inside VM for offline dev
nix: add PLC, PDS, and Jetstream packages
appview/oauth: add DevStartAuthFlow for HTTP dev mode
appview,knot,spindle: use DevDirectory in dev mode
idresolver: add DevDirectory for .test TLD handle resolution
idresolver: add PDSClient() helper to reduce duplication