Files
seaweedfs/sw-block/bridge/blockvol/doc.go
T
pingqiuandClaude Opus 4.6 11c6aaf316 feat: Batch 7 + Phase 16C-E — command dispatch extraction + engine refinements
Batch 7: Command dispatch binding extraction
- New weed/server/blockcmd package: CommandHandler interface + DispatchCommands
- volume_server_block.go applyCoreCommandsWithAssignment delegates to dispatcher
- weed/server still owns RecordCommand, EmitCoreEvent, PublishProjection
- v2bridge NOT given command-switch or event-emission semantics

Phase 16C: Rebuilding assignment enters core command path
Phase 16D: Rebuild recovery-task startup is command-driven
Phase 16E: Catch-up recovery-task startup is command-driven

Engine refinements:
- RecoveryTarget on AssignmentDelivered event
- shouldStartRecoveryTask / shouldStartReceiver guards
- bootstrapReason: awaiting_rebuild_start

Bridge/contract updates:
- control_adapter.go: refined translation helpers
- contract.go: executor port alignment

Migration design docs (Batch 1-3 delivered, design artifacts):
- v2-first/second/third-migration-batch.md + task-pack.md
- v2-assignment-translation-unification.md
- v2-execution-muscles-inventory.md
- v2-separation-port-layer-audit.md
- v2-legacy-runtime-exit-criteria.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 02:13:08 -07:00

26 lines
1.1 KiB
Go

// Package blockvol defines the weed-free bridge contracts that connect the V2
// engine to blockvol-backed control and execution mechanics.
//
// This package owns:
// - stable control translation helpers
// - storage/execution port contracts
// - thin adapters that consume those contracts without importing weed/
//
// Real blockvol-backed implementations live outside this package (today under
// weed/storage/blockvol/v2bridge/). This package must remain reusable from
// sw-block without directly depending on weed/.
//
// Hard rules (Phase 07):
// - ReplicaID = <volume-name>/<replica-server-id> (not address-derived)
// - blockvol executes recovery I/O but does NOT own recovery policy
// - Engine decides zero-gap vs catch-up vs rebuild
// - Bridge translates engine decisions into blockvol actions
//
// Adapter replacement order:
//
// P0: control_adapter (assignment → engine intent)
// P0: storage_adapter (blockvol state → RetainedHistory)
// P1: executor_bridge (engine executor → blockvol I/O)
// P1: observe_adapter (engine status → service diagnostics)
package blockvol