Initial population

What this layer does

Phase 6 is the one-time seed of DO Spaces canonical from Robert's machine. Until this runs, s3://robert-storage/snappy-os/ and s3://robert-storage/snappy-kernel/ are empty and Joe pulls return zero files. Phase 6 closes that loop by pushing the local canonical through the Worker.

Files involved

(mini OS).

(kernel skills reference library).

Phase 6 refuses to skip.

Procedure

cd ~/projects/snappy-os
snappy-os push --scope all --dry        # verify the manifest
snappy-os push --scope all              # do it (Worker writes DO)

cd ~/projects/snappy-kernel
snappy-os push --scope all --repo kernel --dry
snappy-os push --scope all --repo kernel

The Worker authenticates Robert's SNAPPY_MASTER_KEY, derives his tenant_id, recognizes him as the canonical author, and writes to the public-tier prefix s3://robert-storage/snappy-os/ and s3://robert-storage/snappy-kernel/. Per-tenant data goes to snappy-os-tenants/<tenant_id>/; the canonical author writes to the unprefixed root.

Operational gotchas

Phase 6 until state/log/migrations.ndjson shows the Robert-machine migration row. Otherwise the push captures stale canonical state (pre-symlink, divergent local copies).

sources/ need to land in DO. Subsequent auto-pushes default to --scope state.

verifying the manifest delta catches accidental inclusions (build artifacts, editor swapfiles).

path that matches neither allow nor deny is rejected with a clear error; resolve by adding to one list.

from an empty kernel canonical, which makes kernel slash commands appear missing on every Joe machine.

How to verify it's working

returns a manifest listing the seeded files.

snappy-os pull --scope all gets a populated ~/projects/snappy-os/.

skill within 5 minutes (one scheduled-handler tick).

with bytes and files populated.