Skip to content

docs(edge-sync): air-gap bundles, import, and acknowledgment - #24

Merged
xe-nvdk merged 2 commits into
mainfrom
docs/edge-sync-airgap-rebased
Aug 13, 2026
Merged

xe-nvdk merged 2 commits into
mainfrom
docs/edge-sync-airgap-rebased

Conversation

@xe-nvdk

@xe-nvdk xe-nvdk commented Aug 7, 2026

Copy link
Copy Markdown
Member

Replaces #21, which cannot be merged. Close #21 in favour of this. Based directly on current main, no stacking.

What went wrong with #21

#22 and #23 merged into their stacked bases (docs/edge-sync-airgap, docs/edge-sync-import) rather than into main. So that branch accumulated all three air-gap sections while main moved on independently via #20 — and the two diverged:

Lines Content
main (via #20) 256 hub guide + the spoke side
docs/edge-sync-airgap 160 a truncated base + export

#21 was trying to merge the 160-line lineage into a main that already had a fuller 256-line version. Hence the conflict.

Why this is an append, not a merge resolution

The two halves turned out to be cleanly complementary — I verified rather than assumed:

  • Zero overlapping headings between main's version and the stack's.
  • main ends exactly where the air-gap content begins (its last line is the network section's closing sentence).

So this takes main's version and appends the three sections it lacks. Result: 31 sections, 469 lines, no duplicate headings.

Content

Unchanged from what was reviewed in #21, #22, and #23:

  • Air-gap bundles — the [edge_sync.spoke.bundle] block, writing and inspecting a bundle, the destination allow-list, exported-vs-synced, reverting a drive that never arrived.
  • Importing on the hub — [edge_sync.import], the three refusals an operator meets, why a duplicate drive is refused by a dedup ledger rather than a timestamp window, import history, cluster-mode Raft batching.
  • The return leg — the hub's signed ack.json, applying it, the full exported → synced cycle, and what the acknowledgment guarantees.

Two edits beyond a straight append

  • The intro said "both sides ship" without mentioning there are two transports. It now names the network link and the air gap.
  • The trailing Limitations is renamed Air-gap limitations, so it does not read as superseding the hub-side Current limitations further up. Both are accurate and cover different things.

After merging

docs/edge-sync-airgap, docs/edge-sync-import, and docs/edge-sync-ack are all superseded and safe to delete.

🤖 Generated with Claude Code

Ignacio Van Droogenbroeck and others added 2 commits August 7, 2026 17:20
Rebuilds the air-gap documentation on top of current main, replacing the
conflicted #21.

What happened: #22 and #23 merged into their stacked BASES rather than
main, so docs/edge-sync-airgap accumulated all three sections while main
moved on via #20. The two sides then diverged — main carried the complete
256-line guide (hub + spoke), the stack a truncated 160-line base plus
its additions — and #21 could no longer merge.

The halves turned out to be cleanly complementary: zero overlapping
headings, and main ends exactly where the air-gap content begins. So this
is main's version with the three missing sections appended, not a merge
resolution. Verified: 31 sections, no duplicate headings.

Content is unchanged from what was reviewed in #21, #22, and #23:

- Air-gap bundles: the [edge_sync.spoke.bundle] block, writing and
  inspecting a bundle, the destination allow-list, exported-vs-synced,
  and reverting a drive that never arrived.
- Importing on the hub: [edge_sync.import], the three refusals an
  operator meets, why a duplicate drive is refused by a dedup ledger
  rather than a timestamp window, import history, and cluster-mode Raft
  batching.
- The return leg: the hub's signed ack.json, applying it, the full
  exported -> synced cycle, and what the acknowledgment guarantees.

Two edits beyond a straight append:

- The intro said "both sides ship" without mentioning that there are two
  TRANSPORTS. It now names the network link and the air gap.
- The trailing "Limitations" is renamed "Air-gap limitations" so it does
  not read as superseding the hub-side "Current limitations" further up.
  Both are accurate and cover different things.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
"Current limitations" sits mid-page, before the air-gap sections, and its
five entries all describe the network path. A reader arriving at it had
no signal that air-gap has separate limitations further down.

Renamed to "Network-transport limitations" with a pointer to the air-gap
block at the end. Both lists are accurate; only the framing was
ambiguous.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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