Skip to content

PKG step 5 — edge ↔ cloud-twin sync (finishes the person-graph stack)#681

Merged
mdheller merged 2 commits into
mainfrom
feat/pkg-step5-edge-twin-sync
Jul 3, 2026
Merged

PKG step 5 — edge ↔ cloud-twin sync (finishes the person-graph stack)#681
mdheller merged 2 commits into
mainfrom
feat/pkg-step5-edge-twin-sync

Conversation

@mdheller

@mdheller mdheller commented Jul 2, 2026

Copy link
Copy Markdown
Member

What

Finishes the Personal Knowledge Graph stack (diagram-4). The per-person graph is edge-resident (HellGraph on TopoLVM flash, #675); a cloud twin holds canonical. This wires the sync.

  • p-edge profile — added to deployment-profiles.yaml with an edge_twin_sync block (edge_to_twin, 30m cadence, reference_only privacy).
  • sync-cronjob.yaml — every 30m an rclone Job co-locates on the HellGraph node (TopoLVM volumes are node-local), mounts its RocksDB store read-only, and pushes a timestamped copy to the S3-compatible twin. Twin keeps PITR copies; edge stays authoritative.
  • volumesnapshotclass.yamltopolvm-snapshots for crash-consistent snapshots (the strict-consistency upgrade path).
  • serviceaccount.yaml + ExternalSecret example — sync identity + twin creds.

Privacy

Only non-private projections cross the link — the ProviderProjection membrane (workspace PersonalContextGraph, prophet-workspace#21) governs export; private nodes stay on-device.

Verification

kubectl kustomize renders 3 resources (SnapshotClass + SA + CronJob); deployment-profiles.yaml parses with p-edge present.

Follow-ups (honest)

PKG stack now complete

contract (workspace#21) · substrate (#675) · runtime (memory-mesh#40) · UI (socioprophet#401) · edge/twin (this).

mdheller added 2 commits July 1, 2026 23:49
…ph stack)

Diagram-4: the per-person graph is edge-resident (HellGraph on TopoLVM flash,
#675); a cloud twin holds canonical. This wires the sync.

- deployment-profiles.yaml: + p-edge profile with an edge_twin_sync block
  (edge_to_twin, 30m cadence, reference_only privacy).
- edge-twin-sync/base: rclone CronJob (every 30m, co-located on the HellGraph
  node via podAffinity, mounts the store PVC read-only, pushes a timestamped copy
  to the S3-compatible twin) + topolvm-snapshots VolumeSnapshotClass (crash-
  consistent PITR upgrade path) + ServiceAccount + ExternalSecret example for the
  twin creds. Hardened podSec (runtime-baseline kyverno).

Privacy: only non-private projections cross — the ProviderProjection membrane
governs export; private nodes stay on-device. kustomize renders 3 resources;
profiles parse (p-edge present). Depends on #675 (StatefulSet PVC).
@mdheller mdheller merged commit 5e6d581 into main Jul 3, 2026
60 checks passed
@mdheller mdheller deleted the feat/pkg-step5-edge-twin-sync branch July 3, 2026 22:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant