瀏覽 1.1.1 文件
1.1.1

Binary DB v0:格式與權威

檢視 Binary DB v0 的檔案格式、整數與偏移規則,以及儲存根邊界。

適用對象: 核心實作者、整合方與維運

本章是完整的活動 Binary DB v0 技術 schema 的入口。它說明每一條固定記錄、 payload 和索引是如何定址的,以及歸哪個儲存根所有。

未指定的行為一律保留並失敗拒絕:實作不得自行發明擴充套件控制代碼編碼,不得悄悄加寬 某個欄位,也不得在已宣告的 layout 轉換之外選用新的規範 payload 編碼。

全域性檔案格式#

每個持久化的 Binary DB .bin 檔案、以及每個可重建的 .idx 檔案,都以一個 四位元組頭部開始:

程式碼 · text
BIN_HEADER_SIZE = 4
INDEX_HEADER_SIZE = 4

BinHeader / IndexHeader:
u32 layout_id = 1     # little-endian

檔案路徑決定記錄種類、名稱空間、權威作用域,以及該檔案屬於權威儲存、payload 儲存、物件資料還是可選快取。頭部不含 magic、記錄數、檢查碼、權威名稱、 generation 令牌,也不重複記錄檔案種類。

對於定長記錄檔案:

程式碼 · text
record_count  = (file_size - BIN_HEADER_SIZE) / record_size
record_offset = BIN_HEADER_SIZE + record_index * record_size

file_size 至少為四位元組,且記錄區必須能被所選記錄大小整除。同一個檔案絕不能 混放來自不同 layout 的記錄。記錄編解碼器使用宣告的位元組偏移,不依賴 Rust 結構體佈局、宿主對齊或隱式填充。

payload 偏移是 u64 檔案地址,從所屬 payload 檔案的第 0 位元組起算。第一個 payload 通常從偏移 BIN_HEADER_SIZE 開始。payload 與定長記錄的整數字段使用 儲存庫固定的位元組序。保留位和保留欄位一律寫零。

除非某欄位是單獨宣告的有符號 Git identity 時間戳,否則每個活動的定長記錄 *_at_s 欄位都是小端無符號 u64,表示自 Unix 紀元起的整秒數。早於紀元的輸入 失敗拒絕。零保持該欄位宣告的"缺失"或"未知"這一確切含義。不得從時間戳精度 推斷任何順序或唯一性。

*_index_plus1 = 0 表示缺失;非零值編碼 index + 1,因為記錄索引零是合法的。 不帶 plus1 字尾的索引欄位存的是直接的記錄索引,合法地可以為零。

權威作用域#

當權威根不同時,同一個檔名可能使用不同的記錄 layout:

  • 本地工作流程權威擁有本地 Task、Change、Line、 Tag、Stash、Land、Land-target-Line、task-snapshot-link 和 Plan 狀態。
  • 一個 ait-server 儲存庫權威擁有遠端 Task、Change、Line、Land、 Land-target-Line、task-snapshot-link、Plan、Patchset、Worker Job 及其 ready/state 索引,以及 Attestation、Actor、Review、Policy 和 Waiver 狀態。
  • 一次 ait-server 安裝擁有一個獨立的服務端全域性執行權威根,且僅用於 Repository 登錄檔及其名稱空間查詢索引。repository_index 指向該根的 repository.bin,並路由到某一個服務端 Repository 權威。Worker Job 的身份 只有作為 (repository_index, worker_job_index) 才有意義;第二個分量是被 路由到的那個 Repository 權威本地的永久物理記錄索引。
  • 共享內容權威擁有內容 Snapshot、有序 Snapshot-parent、Tree、歸一化的 Tree-entry-range、Blob 以及 object-pack 後設資料。
  • 可選的本地 Git 互操作權威擁有 Git 匯入/匯出的儲存庫身份、generation、 不可變對映和可續跑的 checkpoint。它是一個逃生艙式的對映權威,不是 AIT 的主工作流程權威或內容權威。
  • 一個 task worktree 擁有可丟棄的 .ait-worktree/cursor.bin 狀態。
  • 可選的本地內容快取擁有 manifest/file 查詢加速。
  • 可選的本地 remote-mirror 根可以映象服務端的 snapshot link,同時保留服務端 索引。

不同權威根中數值相同的索引不是同一個身份。本地寫入方絕不分配服務端索引。

版本權威

對照 1.1.1 原始碼逐條核對

這一頁是公開文件,不是第二份產品契約。要確認發布權威,請以確切的原始碼和分發契約為準。

所屬元件 Snapshot
  • ait-coreSNP-ED7593DBF982
  • ait-serverSNP-0CCD7DD2A077
  • ait-runnerSNP-35C9C133D2EE
  • ait-pythonSNP-756C731A4CC0
  • ait-nodeSNP-55E90D0A81F1