Repository navigation
docs(edge-sync): air-gap bundles, import, and acknowledgment - #24
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What went wrong with #21
#22 and #23 merged into their stacked bases (
docs/edge-sync-airgap,docs/edge-sync-import) rather than intomain. So that branch accumulated all three air-gap sections whilemainmoved on independently via #20 — and the two diverged:main(via #20)docs/edge-sync-airgap#21 was trying to merge the 160-line lineage into a
mainthat 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:
main's version and the stack's.mainends 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:
[edge_sync.spoke.bundle]block, writing and inspecting a bundle, the destination allow-list, exported-vs-synced, reverting a drive that never arrived.[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.ack.json, applying it, the fullexported → syncedcycle, and what the acknowledgment guarantees.Two edits beyond a straight append
Limitationsis renamedAir-gap limitations, so it does not read as superseding the hub-sideCurrent limitationsfurther up. Both are accurate and cover different things.After merging
docs/edge-sync-airgap,docs/edge-sync-import, anddocs/edge-sync-ackare all superseded and safe to delete.🤖 Generated with Claude Code