straw-queue 0.1.4__tar.gz → 0.1.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (608) hide show
  1. straw_queue-0.1.6/.agents/skills/straw-protocol-review/SKILL.md +77 -0
  2. straw_queue-0.1.6/.agents/skills/straw-protocol-review/agents/openai.yaml +4 -0
  3. {straw_queue-0.1.4 → straw_queue-0.1.6}/.github/workflows/tests.yml +10 -33
  4. {straw_queue-0.1.4 → straw_queue-0.1.6}/CHANGELOG.md +22 -2
  5. {straw_queue-0.1.4 → straw_queue-0.1.6}/CHANGELOG_zh.md +22 -2
  6. straw_queue-0.1.6/CONTRIBUTING.md +145 -0
  7. straw_queue-0.1.6/CONTRIBUTING_zh.md +82 -0
  8. {straw_queue-0.1.4 → straw_queue-0.1.6}/Cargo.lock +1 -1
  9. {straw_queue-0.1.4 → straw_queue-0.1.6}/Cargo.toml +3 -5
  10. {straw_queue-0.1.4 → straw_queue-0.1.6}/PKG-INFO +17 -31
  11. {straw_queue-0.1.4 → straw_queue-0.1.6}/README.md +16 -30
  12. {straw_queue-0.1.4 → straw_queue-0.1.6}/README_zh.md +13 -19
  13. {straw_queue-0.1.4 → straw_queue-0.1.6}/docs/BENCHMARKS.md +94 -0
  14. {straw_queue-0.1.4 → straw_queue-0.1.6}/docs/BENCHMARKS_zh.md +50 -0
  15. straw_queue-0.1.6/docs/DESIGN.md +345 -0
  16. straw_queue-0.1.6/docs/DESIGN_zh.md +213 -0
  17. straw_queue-0.1.6/docs/FILESYSTEM.md +230 -0
  18. straw_queue-0.1.6/docs/FILESYSTEM_zh.md +125 -0
  19. {straw_queue-0.1.4 → straw_queue-0.1.6}/docs/FORMAT.md +2 -2
  20. {straw_queue-0.1.4 → straw_queue-0.1.6}/docs/FORMAT_zh.md +2 -2
  21. straw_queue-0.1.6/docs/README.md +17 -0
  22. straw_queue-0.1.6/docs/README_zh.md +14 -0
  23. {straw_queue-0.1.4 → straw_queue-0.1.6}/docs/USAGE.md +47 -8
  24. {straw_queue-0.1.4 → straw_queue-0.1.6}/docs/USAGE_zh.md +26 -6
  25. {straw_queue-0.1.4 → straw_queue-0.1.6}/pyproject.toml +5 -2
  26. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/access.rs +0 -7
  27. straw_queue-0.1.6/rust/bounds.rs +88 -0
  28. straw_queue-0.1.6/rust/catalog_append.rs +66 -0
  29. straw_queue-0.1.6/rust/catalog_decode.rs +284 -0
  30. straw_queue-0.1.6/rust/catalog_event.rs +85 -0
  31. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/catalog_frame.rs +5 -97
  32. straw_queue-0.1.6/rust/catalog_json.rs +179 -0
  33. straw_queue-0.1.6/rust/catalog_log.rs +302 -0
  34. straw_queue-0.1.6/rust/catalog_namespace.rs +135 -0
  35. straw_queue-0.1.6/rust/catalog_primitives.rs +62 -0
  36. straw_queue-0.1.6/rust/catalog_runtime.rs +365 -0
  37. straw_queue-0.1.6/rust/catalog_state.rs +185 -0
  38. straw_queue-0.1.6/rust/catalog_target.rs +94 -0
  39. straw_queue-0.1.6/rust/catalog_transaction.rs +102 -0
  40. straw_queue-0.1.6/rust/closure.rs +262 -0
  41. straw_queue-0.1.6/rust/closure_node.rs +226 -0
  42. straw_queue-0.1.6/rust/consumption.rs +79 -0
  43. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/directory.rs +1 -26
  44. straw_queue-0.1.6/rust/directory_io.rs +27 -0
  45. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/discovery.rs +0 -15
  46. straw_queue-0.1.6/rust/extent_retry.rs +91 -0
  47. straw_queue-0.1.6/rust/file_adapter.rs +140 -0
  48. straw_queue-0.1.6/rust/file_primitives.rs +46 -0
  49. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/finalization.rs +1 -46
  50. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/framing.rs +4 -102
  51. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/gc.rs +49 -34
  52. straw_queue-0.1.6/rust/gc_batch.rs +94 -0
  53. straw_queue-0.1.6/rust/gc_collection.rs +388 -0
  54. straw_queue-0.1.6/rust/gc_io.rs +90 -0
  55. straw_queue-0.1.6/rust/gc_mark.rs +58 -0
  56. straw_queue-0.1.6/rust/gc_plan.rs +218 -0
  57. straw_queue-0.1.6/rust/gc_receipt.rs +37 -0
  58. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/gc_writer.rs +3 -3
  59. straw_queue-0.1.6/rust/holding.rs +21 -0
  60. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/identities.rs +1 -26
  61. straw_queue-0.1.6/rust/incomplete.rs +74 -0
  62. straw_queue-0.1.6/rust/journal_append.rs +40 -0
  63. straw_queue-0.1.6/rust/journal_io.rs +52 -0
  64. straw_queue-0.1.6/rust/journal_owner.rs +169 -0
  65. straw_queue-0.1.6/rust/journal_primitives.rs +16 -0
  66. straw_queue-0.1.6/rust/journal_recovery.rs +81 -0
  67. straw_queue-0.1.6/rust/journal_state.rs +98 -0
  68. straw_queue-0.1.6/rust/json_update.rs +64 -0
  69. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/lib.rs +4 -7
  70. straw_queue-0.1.6/rust/namespace_identity.rs +138 -0
  71. straw_queue-0.1.6/rust/namespace_step.rs +86 -0
  72. straw_queue-0.1.6/rust/namespace_target.rs +125 -0
  73. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/pending.rs +0 -9
  74. straw_queue-0.1.6/rust/protocol.rs +106 -0
  75. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/python.rs +3 -1
  76. straw_queue-0.1.6/rust/queue_admin.rs +269 -0
  77. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/queue_application.rs +10 -120
  78. straw_queue-0.1.6/rust/queue_commit.rs +146 -0
  79. straw_queue-0.1.6/rust/queue_event.rs +71 -0
  80. straw_queue-0.1.6/rust/queue_gc.rs +255 -0
  81. straw_queue-0.1.6/rust/queue_gc_prepare.rs +80 -0
  82. straw_queue-0.1.6/rust/queue_handoff.rs +181 -0
  83. straw_queue-0.1.6/rust/queue_history.rs +469 -0
  84. straw_queue-0.1.6/rust/queue_metadata.rs +156 -0
  85. straw_queue-0.1.6/rust/queue_progress.rs +315 -0
  86. straw_queue-0.1.6/rust/queue_reader.rs +179 -0
  87. straw_queue-0.1.6/rust/queue_receipt.rs +83 -0
  88. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/queue_replay.rs +6 -170
  89. straw_queue-0.1.6/rust/queue_retirement.rs +129 -0
  90. straw_queue-0.1.6/rust/queue_roots.rs +459 -0
  91. straw_queue-0.1.6/rust/queue_state.rs +161 -0
  92. straw_queue-0.1.6/rust/queue_task.rs +170 -0
  93. straw_queue-0.1.6/rust/queue_transition.rs +313 -0
  94. straw_queue-0.1.6/rust/reclamation.rs +17 -0
  95. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/record_index.rs +89 -113
  96. straw_queue-0.1.6/rust/record_manifest.rs +258 -0
  97. straw_queue-0.1.6/rust/reference_node.rs +355 -0
  98. straw_queue-0.1.6/rust/reference_validation.rs +187 -0
  99. straw_queue-0.1.6/rust/replay.rs +41 -0
  100. straw_queue-0.1.6/rust/request.rs +108 -0
  101. straw_queue-0.1.6/rust/selection.rs +16 -0
  102. straw_queue-0.1.6/rust/staging_consumption.rs +247 -0
  103. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/store.rs +86 -16
  104. straw_queue-0.1.6/rust/stream.rs +32 -0
  105. straw_queue-0.1.6/rust/traversal.rs +27 -0
  106. straw_queue-0.1.6/rust/typed.rs +27 -0
  107. straw_queue-0.1.6/rust/wal.rs +77 -0
  108. straw_queue-0.1.6/rust/wal_append.rs +82 -0
  109. straw_queue-0.1.6/rust/wal_device.rs +46 -0
  110. straw_queue-0.1.6/rust/wal_recovery.rs +171 -0
  111. straw_queue-0.1.6/rust/wal_sink.rs +101 -0
  112. straw_queue-0.1.6/rust/wal_source.rs +169 -0
  113. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/writer_gate.rs +141 -26
  114. straw_queue-0.1.6/rust/writer_gate_flow.rs +235 -0
  115. straw_queue-0.1.6/rust/writer_ownership.rs +194 -0
  116. straw_queue-0.1.6/rust/writer_registry.rs +473 -0
  117. straw_queue-0.1.6/rust/writer_retirement.rs +108 -0
  118. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/store.py +3 -2
  119. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/native.rs +38 -0
  120. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_commit_consumption.py +25 -0
  121. straw_queue-0.1.6/tests/test_gc_concurrency.py +92 -0
  122. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_read_session.py +9 -1
  123. straw_queue-0.1.6/tests/test_verification_runner.py +68 -0
  124. straw_queue-0.1.6/verification/README.md +20 -0
  125. straw_queue-0.1.6/verification/README_zh.md +20 -0
  126. straw_queue-0.1.6/verification/common/README.md +19 -0
  127. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/common/tla/EnvironmentInputs.tla +1 -6
  128. straw_queue-0.1.6/verification/environment_contracts.json +1545 -0
  129. straw_queue-0.1.6/verification/gc/README.md +33 -0
  130. straw_queue-0.1.6/verification/gc/tla/GCConcurrentDeletion.cfg +5 -0
  131. straw_queue-0.1.6/verification/gc/tla/GCConcurrentDeletion.tla +71 -0
  132. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/GCDeletion.tla +1 -1
  133. straw_queue-0.1.6/verification/gc/tla/WriterRetirement.cfg +9 -0
  134. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/WriterRetirement.tla +46 -29
  135. straw_queue-0.1.6/verification/offline/README.md +24 -0
  136. straw_queue-0.1.6/verification/protocol/README.md +45 -0
  137. straw_queue-0.1.6/verification/protocol/tla/CrossLogComposition.cfg +10 -0
  138. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/CrossLogComposition.tla +25 -6
  139. straw_queue-0.1.6/verification/protocol/tla/ReactivationRace.cfg +9 -0
  140. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/ReactivationRace.tla +24 -14
  141. straw_queue-0.1.6/verification/runners/check_mutations.py +112 -0
  142. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/runners/check_tla.py +92 -47
  143. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/runners/environment_manifest.py +12 -56
  144. straw_queue-0.1.6/verification/storage/README.md +53 -0
  145. straw_queue-0.1.6/verification/storage/probes/metadata_scaling.py +98 -0
  146. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/positioned_extent_probe.rs +1 -1
  147. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/DirectoryDurability.tla +21 -16
  148. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/ReadAttempt.cfg +1 -0
  149. straw_queue-0.1.6/verification/storage/tla/ReadAttempt.tla +72 -0
  150. straw_queue-0.1.6/verification/wal/README.md +26 -0
  151. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/wal/tla/CatalogReplay.cfg +1 -0
  152. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/wal/tla/CatalogReplay.tla +11 -6
  153. straw_queue-0.1.6/verification/wal/tla/CatalogTransaction.cfg +8 -0
  154. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/wal/tla/CatalogTransaction.tla +21 -7
  155. straw_queue-0.1.4/CONTRIBUTING.md +0 -52
  156. straw_queue-0.1.4/CONTRIBUTING_zh.md +0 -32
  157. straw_queue-0.1.4/docs/APPLICATIONS.md +0 -53
  158. straw_queue-0.1.4/docs/APPLICATIONS_zh.md +0 -30
  159. straw_queue-0.1.4/docs/BUILDING.md +0 -171
  160. straw_queue-0.1.4/docs/BUILDING_zh.md +0 -108
  161. straw_queue-0.1.4/docs/DESIGN.md +0 -86
  162. straw_queue-0.1.4/docs/DESIGN_zh.md +0 -57
  163. straw_queue-0.1.4/docs/ENVIRONMENT_MODELS.md +0 -985
  164. straw_queue-0.1.4/docs/ENVIRONMENT_MODELS_zh.md +0 -561
  165. straw_queue-0.1.4/docs/FILESYSTEM.md +0 -1636
  166. straw_queue-0.1.4/docs/FILESYSTEM_zh.md +0 -972
  167. straw_queue-0.1.4/docs/FORMAL_VERIFICATION.md +0 -1952
  168. straw_queue-0.1.4/docs/FORMAL_VERIFICATION_zh.md +0 -1010
  169. straw_queue-0.1.4/docs/PROTOCOL_AND_VERIFICATION.md +0 -247
  170. straw_queue-0.1.4/docs/PROTOCOL_AND_VERIFICATION_zh.md +0 -127
  171. straw_queue-0.1.4/docs/README.md +0 -27
  172. straw_queue-0.1.4/docs/README_zh.md +0 -25
  173. straw_queue-0.1.4/docs/VERIFICATION.md +0 -111
  174. straw_queue-0.1.4/docs/VERIFICATION_BOUNDARIES.md +0 -106
  175. straw_queue-0.1.4/docs/VERIFICATION_BOUNDARIES_zh.md +0 -92
  176. straw_queue-0.1.4/docs/VERIFICATION_zh.md +0 -77
  177. straw_queue-0.1.4/rust/bounds.rs +0 -161
  178. straw_queue-0.1.4/rust/catalog_append.rs +0 -192
  179. straw_queue-0.1.4/rust/catalog_decode.rs +0 -686
  180. straw_queue-0.1.4/rust/catalog_event.rs +0 -166
  181. straw_queue-0.1.4/rust/catalog_gc.rs +0 -71
  182. straw_queue-0.1.4/rust/catalog_json.rs +0 -341
  183. straw_queue-0.1.4/rust/catalog_log.rs +0 -641
  184. straw_queue-0.1.4/rust/catalog_namespace.rs +0 -241
  185. straw_queue-0.1.4/rust/catalog_primitives.rs +0 -124
  186. straw_queue-0.1.4/rust/catalog_runtime.rs +0 -595
  187. straw_queue-0.1.4/rust/catalog_state.rs +0 -513
  188. straw_queue-0.1.4/rust/catalog_target.rs +0 -247
  189. straw_queue-0.1.4/rust/catalog_transaction.rs +0 -230
  190. straw_queue-0.1.4/rust/closure.rs +0 -635
  191. straw_queue-0.1.4/rust/closure_node.rs +0 -367
  192. straw_queue-0.1.4/rust/consumption.rs +0 -166
  193. straw_queue-0.1.4/rust/directory_io.rs +0 -76
  194. straw_queue-0.1.4/rust/extent_retry.rs +0 -210
  195. straw_queue-0.1.4/rust/file_adapter.rs +0 -273
  196. straw_queue-0.1.4/rust/file_primitives.rs +0 -204
  197. straw_queue-0.1.4/rust/gc_batch.rs +0 -227
  198. straw_queue-0.1.4/rust/gc_collection.rs +0 -848
  199. straw_queue-0.1.4/rust/gc_io.rs +0 -183
  200. straw_queue-0.1.4/rust/gc_mark.rs +0 -262
  201. straw_queue-0.1.4/rust/gc_receipt.rs +0 -239
  202. straw_queue-0.1.4/rust/holding.rs +0 -34
  203. straw_queue-0.1.4/rust/incomplete.rs +0 -126
  204. straw_queue-0.1.4/rust/journal_append.rs +0 -85
  205. straw_queue-0.1.4/rust/journal_io.rs +0 -126
  206. straw_queue-0.1.4/rust/journal_owner.rs +0 -416
  207. straw_queue-0.1.4/rust/journal_primitives.rs +0 -52
  208. straw_queue-0.1.4/rust/journal_recovery.rs +0 -168
  209. straw_queue-0.1.4/rust/journal_state.rs +0 -158
  210. straw_queue-0.1.4/rust/json_update.rs +0 -104
  211. straw_queue-0.1.4/rust/namespace_identity.rs +0 -296
  212. straw_queue-0.1.4/rust/namespace_step.rs +0 -168
  213. straw_queue-0.1.4/rust/namespace_target.rs +0 -249
  214. straw_queue-0.1.4/rust/protocol.rs +0 -432
  215. straw_queue-0.1.4/rust/queue_admin.rs +0 -510
  216. straw_queue-0.1.4/rust/queue_commit.rs +0 -340
  217. straw_queue-0.1.4/rust/queue_event.rs +0 -145
  218. straw_queue-0.1.4/rust/queue_gc.rs +0 -789
  219. straw_queue-0.1.4/rust/queue_gc_prepare.rs +0 -150
  220. straw_queue-0.1.4/rust/queue_handoff.rs +0 -465
  221. straw_queue-0.1.4/rust/queue_history.rs +0 -812
  222. straw_queue-0.1.4/rust/queue_metadata.rs +0 -319
  223. straw_queue-0.1.4/rust/queue_progress.rs +0 -418
  224. straw_queue-0.1.4/rust/queue_reader.rs +0 -403
  225. straw_queue-0.1.4/rust/queue_receipt.rs +0 -166
  226. straw_queue-0.1.4/rust/queue_retirement.rs +0 -268
  227. straw_queue-0.1.4/rust/queue_roots.rs +0 -935
  228. straw_queue-0.1.4/rust/queue_state.rs +0 -376
  229. straw_queue-0.1.4/rust/queue_task.rs +0 -305
  230. straw_queue-0.1.4/rust/queue_transition.rs +0 -591
  231. straw_queue-0.1.4/rust/reclamation.rs +0 -33
  232. straw_queue-0.1.4/rust/record_manifest.rs +0 -356
  233. straw_queue-0.1.4/rust/reference_node.rs +0 -484
  234. straw_queue-0.1.4/rust/reference_validation.rs +0 -334
  235. straw_queue-0.1.4/rust/replay.rs +0 -68
  236. straw_queue-0.1.4/rust/request.rs +0 -191
  237. straw_queue-0.1.4/rust/selection.rs +0 -31
  238. straw_queue-0.1.4/rust/staging_consumption.rs +0 -655
  239. straw_queue-0.1.4/rust/stream.rs +0 -53
  240. straw_queue-0.1.4/rust/traversal.rs +0 -55
  241. straw_queue-0.1.4/rust/typed.rs +0 -40
  242. straw_queue-0.1.4/rust/wal.rs +0 -123
  243. straw_queue-0.1.4/rust/wal_append.rs +0 -166
  244. straw_queue-0.1.4/rust/wal_device.rs +0 -177
  245. straw_queue-0.1.4/rust/wal_recovery.rs +0 -599
  246. straw_queue-0.1.4/rust/wal_sink.rs +0 -164
  247. straw_queue-0.1.4/rust/wal_source.rs +0 -340
  248. straw_queue-0.1.4/rust/writer_gate_flow.rs +0 -390
  249. straw_queue-0.1.4/rust/writer_ownership.rs +0 -350
  250. straw_queue-0.1.4/rust/writer_registry.rs +0 -1100
  251. straw_queue-0.1.4/rust/writer_retirement.rs +0 -263
  252. straw_queue-0.1.4/tests/test_verification_runner.py +0 -158
  253. straw_queue-0.1.4/verification/README.md +0 -71
  254. straw_queue-0.1.4/verification/README_zh.md +0 -42
  255. straw_queue-0.1.4/verification/common/README.md +0 -30
  256. straw_queue-0.1.4/verification/common/verus/collections.rs +0 -59
  257. straw_queue-0.1.4/verification/common/verus/environment.rs +0 -99
  258. straw_queue-0.1.4/verification/common/verus/serde_json.rs +0 -281
  259. straw_queue-0.1.4/verification/common/verus/verus.rs +0 -278
  260. straw_queue-0.1.4/verification/environment_contracts.json +0 -2313
  261. straw_queue-0.1.4/verification/gc/README.md +0 -45
  262. straw_queue-0.1.4/verification/gc/tla/UsageCache.cfg +0 -6
  263. straw_queue-0.1.4/verification/gc/tla/UsageCache.tla +0 -34
  264. straw_queue-0.1.4/verification/gc/tla/WriterRetirement.cfg +0 -8
  265. straw_queue-0.1.4/verification/gc/verus/gc_liveness.rs +0 -189
  266. straw_queue-0.1.4/verification/measurements/20261023-catalog-buffer.json +0 -338
  267. straw_queue-0.1.4/verification/measurements/20261023-catalog-discovery.json +0 -158
  268. straw_queue-0.1.4/verification/measurements/20261023-catalog-encoding.json +0 -591
  269. straw_queue-0.1.4/verification/measurements/20261023-catalog-history.json +0 -322
  270. straw_queue-0.1.4/verification/measurements/20261023-catalog-replay.json +0 -113
  271. straw_queue-0.1.4/verification/measurements/20261023-control.json +0 -103
  272. straw_queue-0.1.4/verification/measurements/20261023-dependency-traversal.json +0 -173
  273. straw_queue-0.1.4/verification/measurements/20261023-directory-durability.json +0 -197
  274. straw_queue-0.1.4/verification/measurements/20261023-environment-review.json +0 -49
  275. straw_queue-0.1.4/verification/measurements/20261023-gc-batch.json +0 -143
  276. straw_queue-0.1.4/verification/measurements/20261023-gc-parent-repair.json +0 -1005
  277. straw_queue-0.1.4/verification/measurements/20261023-gc-progress.json +0 -88
  278. straw_queue-0.1.4/verification/measurements/20261023-gc-receipt.json +0 -469
  279. straw_queue-0.1.4/verification/measurements/20261023-gc-stat.json +0 -99
  280. straw_queue-0.1.4/verification/measurements/20261023-incomplete-publication.json +0 -1079
  281. straw_queue-0.1.4/verification/measurements/20261023-path-identity.json +0 -680
  282. straw_queue-0.1.4/verification/measurements/20261023-pending-publication.json +0 -428
  283. straw_queue-0.1.4/verification/measurements/20261023-provisional-holds.json +0 -1460
  284. straw_queue-0.1.4/verification/measurements/20261023-publication-finalization.json +0 -475
  285. straw_queue-0.1.4/verification/measurements/20261023-publication-handoff.json +0 -1184
  286. straw_queue-0.1.4/verification/measurements/20261023-publication-preparation.json +0 -672
  287. straw_queue-0.1.4/verification/measurements/20261023-publication-retry.json +0 -225
  288. straw_queue-0.1.4/verification/measurements/20261023-reactivation-timing.json +0 -303
  289. straw_queue-0.1.4/verification/measurements/20261023-reactivation.json +0 -1405
  290. straw_queue-0.1.4/verification/measurements/20261023-selection.json +0 -73
  291. straw_queue-0.1.4/verification/measurements/20261023-shared-record-workflow.json +0 -2572
  292. straw_queue-0.1.4/verification/measurements/20261023-staging-consumption.json +0 -1509
  293. straw_queue-0.1.4/verification/measurements/20261023-stream-length.json +0 -158
  294. straw_queue-0.1.4/verification/measurements/20261023-unlocked-reactivation.json +0 -304
  295. straw_queue-0.1.4/verification/measurements/20261023-writer-lifetime.json +0 -174
  296. straw_queue-0.1.4/verification/measurements/20261023.json +0 -887
  297. straw_queue-0.1.4/verification/measurements/20261024-commit-cleanup.json +0 -239
  298. straw_queue-0.1.4/verification/measurements/20261024-environment-layers.json +0 -69
  299. straw_queue-0.1.4/verification/measurements/20261024-offline-guard.json +0 -484
  300. straw_queue-0.1.4/verification/measurements/20261024-positioned-range.json +0 -345
  301. straw_queue-0.1.4/verification/measurements/20261024-queue-record-workflow.json +0 -386
  302. straw_queue-0.1.4/verification/measurements/20261024-read-latency.json +0 -3468
  303. straw_queue-0.1.4/verification/measurements/20261024-read-lookup.json +0 -610
  304. straw_queue-0.1.4/verification/measurements/20261024-single-open.json +0 -1579
  305. straw_queue-0.1.4/verification/measurements/20261024-tensor-granularity.json +0 -411
  306. straw_queue-0.1.4/verification/measurements/20261024-typed-preflight.json +0 -1674
  307. straw_queue-0.1.4/verification/measurements/20261024-writer-access.json +0 -191
  308. straw_queue-0.1.4/verification/measurements/20261025-catalog-admission.json +0 -206
  309. straw_queue-0.1.4/verification/measurements/20261025-catalog-append.json +0 -577
  310. straw_queue-0.1.4/verification/measurements/20261025-catalog-decode.json +0 -374
  311. straw_queue-0.1.4/verification/measurements/20261025-catalog-equivalence.json +0 -439
  312. straw_queue-0.1.4/verification/measurements/20261025-catalog-event.json +0 -187
  313. straw_queue-0.1.4/verification/measurements/20261025-catalog-frame.json +0 -642
  314. straw_queue-0.1.4/verification/measurements/20261025-catalog-indexes.json +0 -55
  315. straw_queue-0.1.4/verification/measurements/20261025-catalog-json.json +0 -79
  316. straw_queue-0.1.4/verification/measurements/20261025-catalog-log.json +0 -164
  317. straw_queue-0.1.4/verification/measurements/20261025-catalog-recovery.json +0 -1355
  318. straw_queue-0.1.4/verification/measurements/20261025-catalog-target.json +0 -304
  319. straw_queue-0.1.4/verification/measurements/20261025-catalog-transaction.json +0 -697
  320. straw_queue-0.1.4/verification/measurements/20261025-closure-node.json +0 -437
  321. straw_queue-0.1.4/verification/measurements/20261025-commit-recovery.json +0 -736
  322. straw_queue-0.1.4/verification/measurements/20261025-cross-log-composition.json +0 -944
  323. straw_queue-0.1.4/verification/measurements/20261025-dependency-closure.json +0 -529
  324. straw_queue-0.1.4/verification/measurements/20261025-file-adapters.json +0 -2115
  325. straw_queue-0.1.4/verification/measurements/20261025-gc-batch.json +0 -782
  326. straw_queue-0.1.4/verification/measurements/20261025-gc-io.json +0 -726
  327. straw_queue-0.1.4/verification/measurements/20261025-gc-mark.json +0 -489
  328. straw_queue-0.1.4/verification/measurements/20261025-gc-receipt.json +0 -1033
  329. straw_queue-0.1.4/verification/measurements/20261025-journal-append.json +0 -754
  330. straw_queue-0.1.4/verification/measurements/20261025-offline-alias.json +0 -378
  331. straw_queue-0.1.4/verification/measurements/20261025-queue-event.json +0 -819
  332. straw_queue-0.1.4/verification/measurements/20261025-queue-metadata.json +0 -703
  333. straw_queue-0.1.4/verification/measurements/20261025-queue-reader.json +0 -867
  334. straw_queue-0.1.4/verification/measurements/20261025-queue-state.json +0 -1074
  335. straw_queue-0.1.4/verification/measurements/20261025-queue-task.json +0 -992
  336. straw_queue-0.1.4/verification/measurements/20261025-replay-completeness.json +0 -328
  337. straw_queue-0.1.4/verification/measurements/20261025-request-replay.json +0 -477
  338. straw_queue-0.1.4/verification/measurements/20261025-runtime-performance.json +0 -971
  339. straw_queue-0.1.4/verification/measurements/20261025-verification-layout.json +0 -374
  340. straw_queue-0.1.4/verification/measurements/20261025-wal-append.json +0 -165
  341. straw_queue-0.1.4/verification/measurements/20261025-wal-errors-staging-graph.json +0 -58
  342. straw_queue-0.1.4/verification/measurements/20261026-gc-collection.json +0 -297
  343. straw_queue-0.1.4/verification/measurements/20261026-journal-io.json +0 -630
  344. straw_queue-0.1.4/verification/measurements/20261026-owned-chains-integration.json +0 -601
  345. straw_queue-0.1.4/verification/measurements/20261026-queue-admin.json +0 -1021
  346. straw_queue-0.1.4/verification/measurements/20261026-queue-application.json +0 -852
  347. straw_queue-0.1.4/verification/measurements/20261026-queue-history.json +0 -732
  348. straw_queue-0.1.4/verification/measurements/20261026-queue-replay.json +0 -1013
  349. straw_queue-0.1.4/verification/measurements/20261026-queue-transition.json +0 -825
  350. straw_queue-0.1.4/verification/measurements/20261026-release-checks.json +0 -188
  351. straw_queue-0.1.4/verification/measurements/20261026-writer-admission.json +0 -1110
  352. straw_queue-0.1.4/verification/measurements/20261026-writer-roots-integration.json +0 -212
  353. straw_queue-0.1.4/verification/offline/README.md +0 -26
  354. straw_queue-0.1.4/verification/protocol/README.md +0 -69
  355. straw_queue-0.1.4/verification/protocol/tla/CrossLogComposition.cfg +0 -10
  356. straw_queue-0.1.4/verification/protocol/tla/LeaseSelection.cfg +0 -8
  357. straw_queue-0.1.4/verification/protocol/tla/LeaseSelection.tla +0 -22
  358. straw_queue-0.1.4/verification/protocol/tla/ReactivationRace.cfg +0 -7
  359. straw_queue-0.1.4/verification/protocol/verus/control_plane.rs +0 -147
  360. straw_queue-0.1.4/verification/protocol/verus/cross_log.rs +0 -351
  361. straw_queue-0.1.4/verification/protocol/verus/queue_event_equivalence.rs +0 -146
  362. straw_queue-0.1.4/verification/protocol/verus/queue_transition_roots.rs +0 -67
  363. straw_queue-0.1.4/verification/protocol/verus/request_history.rs +0 -66
  364. straw_queue-0.1.4/verification/protocol/verus/retry_liveness.rs +0 -168
  365. straw_queue-0.1.4/verification/runners/check_verus.py +0 -7292
  366. straw_queue-0.1.4/verification/storage/README.md +0 -47
  367. straw_queue-0.1.4/verification/storage/tla/ExtentArithmetic.cfg +0 -7
  368. straw_queue-0.1.4/verification/storage/tla/ExtentArithmetic.tla +0 -31
  369. straw_queue-0.1.4/verification/storage/tla/NamespaceEncoding.cfg +0 -7
  370. straw_queue-0.1.4/verification/storage/tla/NamespaceEncoding.tla +0 -44
  371. straw_queue-0.1.4/verification/storage/tla/PayloadStream.cfg +0 -8
  372. straw_queue-0.1.4/verification/storage/tla/PayloadStream.tla +0 -47
  373. straw_queue-0.1.4/verification/storage/tla/ReadAttempt.tla +0 -63
  374. straw_queue-0.1.4/verification/storage/tla/TensorGranularity.cfg +0 -8
  375. straw_queue-0.1.4/verification/storage/tla/TensorGranularity.tla +0 -48
  376. straw_queue-0.1.4/verification/wal/README.md +0 -61
  377. straw_queue-0.1.4/verification/wal/tla/CatalogTransaction.cfg +0 -8
  378. straw_queue-0.1.4/verification/wal/verus/catalog_equivalence.rs +0 -274
  379. straw_queue-0.1.4/verification/wal/verus/catalog_json_equivalence.rs +0 -157
  380. straw_queue-0.1.4/verification/wal/verus/journal_equivalence.rs +0 -149
  381. straw_queue-0.1.4/verification/wal/verus/prefix_projection.rs +0 -96
  382. {straw_queue-0.1.4 → straw_queue-0.1.6}/.github/workflows/wheels.yml +0 -0
  383. {straw_queue-0.1.4 → straw_queue-0.1.6}/LICENSE +0 -0
  384. {straw_queue-0.1.4 → straw_queue-0.1.6}/examples/multiprocess.py +0 -0
  385. {straw_queue-0.1.4 → straw_queue-0.1.6}/examples/records.py +0 -0
  386. {straw_queue-0.1.4 → straw_queue-0.1.6}/examples/tensors.py +0 -0
  387. {straw_queue-0.1.4 → straw_queue-0.1.6}/examples/work_queue.py +0 -0
  388. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/coordinator.rs +0 -0
  389. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/journal.rs +0 -0
  390. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/payload.rs +0 -0
  391. {straw_queue-0.1.4 → straw_queue-0.1.6}/rust/wal_file.rs +0 -0
  392. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/__init__.py +0 -0
  393. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/backend.py +0 -0
  394. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/benchmark.py +0 -0
  395. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/coordinator.py +0 -0
  396. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/errors.py +0 -0
  397. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/inspect.py +0 -0
  398. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/journal.py +0 -0
  399. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/protocol.py +0 -0
  400. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/reporting.py +0 -0
  401. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/rpc.py +0 -0
  402. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/tensor.py +0 -0
  403. {straw_queue-0.1.4 → straw_queue-0.1.6}/src/straw/tracing.py +0 -0
  404. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_artifact_privacy.py +0 -0
  405. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_benchmark_profile.py +0 -0
  406. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_catalog_encoding.py +0 -0
  407. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_commit_protocol.py +0 -0
  408. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_consumer_rewind.py +0 -0
  409. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_dependency_traversal.py +0 -0
  410. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_durable_handoff.py +0 -0
  411. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_extent_bounds.py +0 -0
  412. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_extent_visibility.py +0 -0
  413. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_filesystem_queue.py +0 -0
  414. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_gc_batch.py +0 -0
  415. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_gc_extent_validation.py +0 -0
  416. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_gc_missing_parent.py +0 -0
  417. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_gc_receipts.py +0 -0
  418. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_incomplete_publication.py +0 -0
  419. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_journal_contract.py +0 -0
  420. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_json_roundtrip.py +0 -0
  421. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_lease_selection.py +0 -0
  422. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_metadata_recovery.py +0 -0
  423. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_offline_aliases.py +0 -0
  424. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_offline_inspection.py +0 -0
  425. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_offline_recovery.py +0 -0
  426. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_online_gc.py +0 -0
  427. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_packed_store.py +0 -0
  428. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_path_identity.py +0 -0
  429. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_pending_publication.py +0 -0
  430. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_provisional_holds.py +0 -0
  431. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_publication_handoff.py +0 -0
  432. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_publication_preparation.py +0 -0
  433. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_queue_gc_roots.py +0 -0
  434. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_request_replay.py +0 -0
  435. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_resume_workflow.py +0 -0
  436. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_staging_consumption.py +0 -0
  437. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_streaming_write.py +0 -0
  438. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_task_recovery.py +0 -0
  439. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_tensor.py +0 -0
  440. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_tensor_granularity.py +0 -0
  441. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_tensor_preflight.py +0 -0
  442. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_unlimited_capacity.py +0 -0
  443. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_visibility_probe.py +0 -0
  444. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_wal_recovery.py +0 -0
  445. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_writer_access.py +0 -0
  446. {straw_queue-0.1.4 → straw_queue-0.1.6}/tests/test_writer_retirement.py +0 -0
  447. {straw_queue-0.1.4 → straw_queue-0.1.6}/tools/check_artifact_privacy.py +0 -0
  448. {straw_queue-0.1.4 → straw_queue-0.1.6}/tools/check_wheel.py +0 -0
  449. {straw_queue-0.1.4 → straw_queue-0.1.6}/tools/release_build.py +0 -0
  450. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/common/probes/runtime_performance.py +0 -0
  451. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/common/tla/EnvironmentCatalog.tla +0 -0
  452. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/common/tla/EnvironmentGraph.tla +0 -0
  453. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/common/tla/EnvironmentNamespace.tla +0 -0
  454. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/common/tla/EnvironmentPersistence.tla +0 -0
  455. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/common/tla/EnvironmentProgress.tla +0 -0
  456. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/common/tla/EnvironmentRead.tla +0 -0
  457. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/probes/catalog_discovery_fault.c +0 -0
  458. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/probes/catalog_discovery_probe.py +0 -0
  459. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/probes/gc_cross_client.py +0 -0
  460. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/probes/gc_history_probe.py +0 -0
  461. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/probes/gc_parent_fault.c +0 -0
  462. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/probes/gc_parent_probe.py +0 -0
  463. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/probes/gc_receipt_probe.py +0 -0
  464. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/probes/gc_scale.py +0 -0
  465. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/probes/gc_stat_fault.c +0 -0
  466. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/probes/gc_stat_probe.py +0 -0
  467. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/EnvironmentParentRepair.tla +0 -0
  468. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/EnvironmentWriter.tla +0 -0
  469. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/EnvironmentWriterRetirement.tla +0 -0
  470. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/GCBatchDeletion.cfg +0 -0
  471. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/GCBatchDeletion.tla +0 -0
  472. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/GCDeletion.cfg +0 -0
  473. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/GCDiscovery.cfg +0 -0
  474. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/GCDiscovery.tla +0 -0
  475. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/GCParentRepair.cfg +0 -0
  476. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/GCParentRepair.tla +0 -0
  477. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/GCReceipt.cfg +0 -0
  478. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/GCReceipt.tla +0 -0
  479. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/WriterLifetime.cfg +0 -0
  480. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/gc/tla/WriterLifetime.tla +0 -0
  481. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/measurements/20261026-release-100gb.json +0 -0
  482. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/measurements/20261026-release-comparison.json +0 -0
  483. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/measurements/20261026-release-visibility.json +0 -0
  484. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/offline/probes/offline_alias_probe.py +0 -0
  485. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/offline/probes/offline_guard_fault.c +0 -0
  486. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/offline/probes/offline_guard_probe.py +0 -0
  487. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/offline/tla/EnvironmentBindings.tla +0 -0
  488. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/offline/tla/EnvironmentOffline.tla +0 -0
  489. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/offline/tla/OfflineAliases.cfg +0 -0
  490. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/offline/tla/OfflineAliases.tla +0 -0
  491. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/offline/tla/OfflineCleanup.cfg +0 -0
  492. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/offline/tla/OfflineCleanup.tla +0 -0
  493. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/offline/tla/OfflineRoots.cfg +0 -0
  494. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/offline/tla/OfflineRoots.tla +0 -0
  495. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/checks/ownership_model.py +0 -0
  496. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/probes/commit_cleanup_probe.py +0 -0
  497. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/probes/consumption_probe.py +0 -0
  498. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/probes/handoff_extent_probe.rs +0 -0
  499. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/probes/handoff_probe.py +0 -0
  500. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/probes/lease_selection_probe.py +0 -0
  501. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/probes/provisional_hold_probe.py +0 -0
  502. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/probes/queue_record_probe.rs +0 -0
  503. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/probes/reactivation_peer_probe.py +0 -0
  504. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/probes/reactivation_probe.rs +0 -0
  505. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/probes/workflow_extent_probe.rs +0 -0
  506. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/CommitApplication.cfg +0 -0
  507. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/CommitApplication.tla +0 -0
  508. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/CommitCleanup.cfg +0 -0
  509. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/CommitCleanup.tla +0 -0
  510. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/Completion.cfg +0 -0
  511. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/Completion.tla +0 -0
  512. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/DurableHandoff.cfg +0 -0
  513. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/DurableHandoff.tla +0 -0
  514. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/EnvironmentApplication.tla +0 -0
  515. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/EnvironmentClock.tla +0 -0
  516. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/EnvironmentCommitCleanup.tla +0 -0
  517. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/EnvironmentConsumption.tla +0 -0
  518. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/EnvironmentCrossComposition.tla +0 -0
  519. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/EnvironmentCrossLog.tla +0 -0
  520. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/EnvironmentHandoff.tla +0 -0
  521. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/EnvironmentReaders.tla +0 -0
  522. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/EnvironmentRequest.tla +0 -0
  523. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/EnvironmentTraining.tla +0 -0
  524. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/Ownership.cfg +0 -0
  525. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/Ownership.tla +0 -0
  526. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/ProvisionalHold.cfg +0 -0
  527. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/ProvisionalHold.tla +0 -0
  528. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/PublicationHandoff.cfg +0 -0
  529. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/PublicationHandoff.tla +0 -0
  530. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/QueueRecordWorkflow.cfg +0 -0
  531. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/QueueRecordWorkflow.tla +0 -0
  532. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/ReactivationScan.cfg +0 -0
  533. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/ReactivationScan.tla +0 -0
  534. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/RequestReplay.cfg +0 -0
  535. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/RequestReplay.tla +0 -0
  536. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/SharedRecordWorkflow.cfg +0 -0
  537. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/SharedRecordWorkflow.tla +0 -0
  538. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/StagingConsumption.cfg +0 -0
  539. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/StagingConsumption.tla +0 -0
  540. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/TrainingResume.cfg +0 -0
  541. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/protocol/tla/TrainingResume.tla +0 -0
  542. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/catalog_encoding_probe.py +0 -0
  543. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/dependency_probe.py +0 -0
  544. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/directory_sync_fault.c +0 -0
  545. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/directory_sync_probe.py +0 -0
  546. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/extent_visibility_probe.py +0 -0
  547. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/filesystem_bandwidth_probe.py +0 -0
  548. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/incomplete_cleanup_fault.c +0 -0
  549. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/incomplete_publication_probe.py +0 -0
  550. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/large_extent_probe.rs +0 -0
  551. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/namespace_lookup_count.c +0 -0
  552. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/path_identity_probe.py +0 -0
  553. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/pending_publication_probe.py +0 -0
  554. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/preparation_fault.c +0 -0
  555. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/preparation_probe.py +0 -0
  556. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/publication_finalize_probe.py +0 -0
  557. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/publication_retry_probe.py +0 -0
  558. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/publication_sync_fault.c +0 -0
  559. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/read_latency_probe.py +0 -0
  560. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/read_latency_trace.c +0 -0
  561. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/read_lookup_fault.c +0 -0
  562. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/read_lookup_probe.py +0 -0
  563. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/standalone_extent_probe.rs +0 -0
  564. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/tensor_granularity_probe.py +0 -0
  565. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/typed_preflight_probe.py +0 -0
  566. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/writer_access_probe.py +0 -0
  567. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/probes/writer_lifetime_probe.py +0 -0
  568. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/DependencyTraversal.cfg +0 -0
  569. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/DependencyTraversal.tla +0 -0
  570. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/DirectoryDurability.cfg +0 -0
  571. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/EnvironmentAuthentication.tla +0 -0
  572. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/EnvironmentIncomplete.tla +0 -0
  573. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/EnvironmentLocalAccess.tla +0 -0
  574. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/EnvironmentLookup.tla +0 -0
  575. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/EnvironmentPreparation.tla +0 -0
  576. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/EnvironmentTyped.tla +0 -0
  577. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/EnvironmentVisibility.tla +0 -0
  578. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/ExtentVisibility.cfg +0 -0
  579. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/ExtentVisibility.tla +0 -0
  580. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/IncompletePublication.cfg +0 -0
  581. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/IncompletePublication.tla +0 -0
  582. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/NamespaceIdentity.cfg +0 -0
  583. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/NamespaceIdentity.tla +0 -0
  584. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/PendingPublication.cfg +0 -0
  585. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/PendingPublication.tla +0 -0
  586. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/PublicationFinalization.cfg +0 -0
  587. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/PublicationFinalization.tla +0 -0
  588. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/PublicationPreparation.cfg +0 -0
  589. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/PublicationPreparation.tla +0 -0
  590. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/PublicationRetry.cfg +0 -0
  591. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/PublicationRetry.tla +0 -0
  592. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/RangeRead.cfg +0 -0
  593. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/RangeRead.tla +0 -0
  594. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/ReadLookup.cfg +0 -0
  595. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/ReadLookup.tla +0 -0
  596. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/TypedRead.cfg +0 -0
  597. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/TypedRead.tla +0 -0
  598. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/WriterAccess.cfg +0 -0
  599. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/storage/tla/WriterAccess.tla +0 -0
  600. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/wal/checks/crash_campaign.py +0 -0
  601. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/wal/probes/catalog_fsync_fault.c +0 -0
  602. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/wal/probes/catalog_history_probe.py +0 -0
  603. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/wal/probes/catalog_replay_probe.py +0 -0
  604. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/wal/tla/CatalogReadBuffer.cfg +0 -0
  605. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/wal/tla/CatalogReadBuffer.tla +0 -0
  606. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/wal/tla/EnvironmentWal.tla +0 -0
  607. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/wal/tla/WalRecovery.cfg +0 -0
  608. {straw_queue-0.1.4 → straw_queue-0.1.6}/verification/wal/tla/WalRecovery.tla +0 -0
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: straw-protocol-review
3
+ description: Review or change straw's persistence, ownership, recovery, GC, publication and read protocols. Use for protocol review, TODO acceptance, TLA+ changes, or Rust changes affecting durable ordering, crash/retry, request/attempt/epoch admission, reader roots or authentication. Compare the human protocol document to TLA+, then TLA+ to actual implementation; identify discrepancies and validate fixes with relevant regressions.
4
+ ---
5
+
6
+ # straw 协议审查
7
+
8
+ 以仓库根目录为工作目录。先读 `docs/DESIGN_zh.md`
9
+ (英文版去掉 `_zh`),再按三部分中的“模型与实现对应”定位模型、调用链和测试。
10
+ 文档是人审查的规则入口;映射表只是导航,不能替代阅读当前源码。
11
+
12
+ ## 1. 确定规则与范围
13
+
14
+ 从用户要求、diff 和 `TODO.md` 确定受影响的规则:
15
+
16
+ - **分布式协议 C1/C2/C4**:跨日志 handoff、请求/attempt/epoch、checkpoint 回退。
17
+ - **WAL 与数据 I/O C3/R1–R4**:日志与派生状态恢复、准备与发布重试、认证读取、独立可见性与有限重试。
18
+ - **所有权与 GC G1–G4**:完整根、认证与缓存、删除屏障与回执、writer 退休和条件活性。
19
+
20
+ 追踪一条完整流程,包括入口、成功返回、报错但已生效、崩溃恢复和重复调用。
21
+ 区分 accepted、applied、protected、reclaimed。禁止通过扩大环境假设或把失败步骤
22
+ 合成原子动作来消除反例。没有格式变化就保留现有 wire format 和 API。
23
+
24
+ ## 2. 文档 → TLA+
25
+
26
+ 逐条检查对应 `.tla`、`.cfg` 和 `verification/runners/check_tla.py` 的实际配置:
27
+
28
+ 1. 文档的状态、前置条件、持久化点、错误路径分别对应哪些变量和动作?
29
+ 2. 锁、write、sync、apply、release、unlink、目录屏障、receipt 的可观察顺序是否保留?
30
+ 3. 关键性质是否在运行配置中启用?正例能否成功,避免“一律拒绝”假安全?
31
+ 4. 负例是否因为指定不变量/时序性质失败?解析错误、超时和工具错误不是有效反例。
32
+ 5. 有限实例抽象了什么?跨日志模型的完整事务不能替代 WAL 的碎片写入模型。
33
+ 6. 活性是否单列公平性、锁/I/O 返回、环境稳定和实际调用者继续重试?永久 owner
34
+ 与永久无效输入应有独立安全/拒绝场景,不能假设它们最终消失或成功。
35
+
36
+ 审查 `verification/environment_contracts.json` 和 `docs/DESIGN_zh.md#environment`:
37
+ 环境保证与 straw 调用者义务分别列出。尤其不能把“已认证闭包”“正确根集合”或
38
+ “正确 callback”当成外部保证,跳过实际构造与调用。
39
+
40
+ ## 3. TLA+ → 实现
41
+
42
+ 从公开入口向下读真实 Rust/Python/FFI 调用路径,不能只核对同名 helper。
43
+ 对每个关键动作记录:实际函数、guard、数据身份、持久化效果、错误后可用状态和恢复入口。
44
+ 同时检查返回值和后续调用者是否真的遵守 guard。
45
+
46
+ 重点反查这些越界:
47
+
48
+ - queue WAL 确认前释放 staging/根;旧 handoff 消耗新一代 staging。
49
+ - 部分 apply、I/O 错误或 caught unwind 后仍允许写入、缓存回复或 GC;恢复用了另一条日志。
50
+ - stale attempt/epoch 被新请求接受;旧成功请求因数据已回收而不能重放。
51
+ - reader/checkpoint/其他队列/传递依赖根遗漏;锁外认证后没有锁内重查。
52
+ - 缓存跨 pool/run/namespace/reference 复用;既有可变 owner 名不保护所请求的根。
53
+ - unlink/NotFound 后目录屏障未完成就记回执;回执删除永久 tombstone。
54
+ - writer fence 未排空旧 I/O;未认证结果就恢复 staging;release 与登记 settlement 混成一步。
55
+ - warm index cache 跳过 frame/envelope/payload 校验;失败读取不关闭重开;永久损坏被当成功。
56
+
57
+ 对发现的实现错误,先保留可失败的实际回归,再修复并跑正常路径。
58
+ 修改模型和文档时同步中英文、规则 ID、映射和环境登记;不添加重复的协议正文。
59
+ 普通确定性 helper 优先编译器、Clippy 和有意义的边界测试,不重建局部证明体系。
60
+
61
+ ## 4. 验证与交付
62
+
63
+ 按风险运行 `CONTRIBUTING.md#checks` 中的命令。模型改动至少运行对应 area、
64
+ 关联组合模型和环境登记检查;完整版本验收运行全部保留模型、Rust/FFI 回归及 crash campaign。
65
+ 运行 Python 测试前确认加载的 native 扩展由当前源码构建,避免测试旧 wheel。
66
+ 只有新的修改、失败或未解决疑点才需要重复已通过的检查。
67
+
68
+ 输出须能让人复查:
69
+
70
+ - 结论及受影响规则;文档→TLA、TLA→实现分别有哪些一致点和差异。
71
+ - 每个问题的具体触发/崩溃窗口、影响、源码位置、复现及修复证据。
72
+ - 实际运行命令、输入/工具版本或哈希、结果,以及未运行的部分。
73
+ - 有意保留的抽象差异、环境前提和剩余风险;没有发现问题时也报告这些边界。
74
+ - 删除验证时说明原来防止的错误、保留证据、减少的保证与维护成本;性能只报可比实测。
75
+
76
+ 有限模型检查、源码审查和具体回归是三种不同证据。不能把 CI 全绿写成完整实现等价证明,
77
+ 也不能仅删除 TODO 或改标记来宣布完成。只有对应交付物与验收结果齐全才勾选。
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "straw 协议审查"
3
+ short_description: "Review straw docs, TLA+ models and implementation consistency"
4
+ default_prompt: "Use $straw-protocol-review to review the affected protocol flows, compare docs to TLA+ and TLA+ to implementation, and validate any fixes with relevant evidence."
@@ -44,37 +44,6 @@ jobs:
44
44
  target/tla/**/*.cfg
45
45
  if-no-files-found: error
46
46
 
47
- verus:
48
- name: Verus / shard ${{ matrix.shard }}
49
- runs-on: ubuntu-latest
50
- timeout-minutes: 60
51
- strategy:
52
- fail-fast: false
53
- matrix:
54
- shard: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
55
- steps:
56
- - uses: actions/checkout@v4
57
- - uses: dtolnay/rust-toolchain@1.99.1
58
- with:
59
- components: rustc-dev, llvm-tools
60
- - uses: actions/setup-python@v5
61
- with:
62
- python-version: '3.12'
63
- - name: Verify pinned Rust contracts and semantic mutants
64
- run: >-
65
- python verification/runners/check_verus.py --download --timeout 600
66
- --shard-index ${{ matrix.shard }} --shard-count 16
67
- - uses: actions/upload-artifact@v4
68
- if: always()
69
- with:
70
- name: verus-verification-${{ matrix.shard }}
71
- path: |
72
- target/verus/report.json
73
- target/verus/environment_contracts.json
74
- target/verus/**/*.log
75
- target/verus/**/*.rs
76
- if-no-files-found: error
77
-
78
47
  checks:
79
48
  name: Rust tests and code checks
80
49
  runs-on: ubuntu-latest
@@ -102,6 +71,14 @@ jobs:
102
71
  cargo clippy --locked --all-targets --features python -- -D warnings
103
72
  - name: Run Rust tests
104
73
  run: cargo test --locked
74
+ - name: Check concrete protocol mutation regressions
75
+ run: python verification/runners/check_mutations.py
76
+ - uses: actions/upload-artifact@v4
77
+ if: always()
78
+ with:
79
+ name: implementation-mutations
80
+ path: target/implementation-mutations/
81
+ if-no-files-found: warn
105
82
 
106
83
  python:
107
84
  name: Full suite / Python ${{ matrix.python }}
@@ -138,7 +115,7 @@ jobs:
138
115
 
139
116
  verification:
140
117
  name: Verification passed
141
- needs: [formal, verus, checks, python]
118
+ needs: [formal, checks, python]
142
119
  if: always()
143
120
  runs-on: ubuntu-latest
144
121
  timeout-minutes: 5
@@ -152,7 +129,7 @@ jobs:
152
129
  import os
153
130
 
154
131
  results = json.loads(os.environ["RESULTS"])
155
- assert set(results) == {"formal", "verus", "checks", "python"}
132
+ assert set(results) == {"formal", "checks", "python"}
156
133
  failed = {name: job["result"] for name, job in results.items() if job["result"] != "success"}
157
134
  if failed:
158
135
  raise SystemExit(f"Verification did not pass: {failed}")
@@ -2,6 +2,26 @@
2
2
 
3
3
  [中文版](CHANGELOG_zh.md)
4
4
 
5
+ ## 0.1.6
6
+
7
+ - Reuse confirmed writer-registry state and index operation lookup; rebuild after uncertain outcomes. Cache only successfully synchronized writer directories with pinned inode identity. Keep existing publication WAL barriers and wire formats.
8
+ - Move physical GC deletion and directory synchronization outside the pool catalog lock. Bind receipts to the completed plan and support overlapping collectors without consuming newly added pending work.
9
+ - Cache up to eight authenticated extent indexes for alternating reads. Extend protocol models and concrete regressions; add real Rust mutation checks to CI and a reproducible metadata-scaling probe. Metadata history/receipt retirement and compaction remain out of scope.
10
+
11
+ ## 0.1.5
12
+
13
+ ### Ownership safety
14
+
15
+ - Fix reactivation reusing an existing public owner without checking that it protects the requested root, including owner changes after authentication outside the lock. Check the retained pack closure both initially and under the fresh lock; internal queue owners bind the reference digest. Correct reuse still succeeds; public owner reuse adds closure/metadata checks.
16
+ - Preserve public APIs, WAL/pack formats and durability ordering. Add regressions for existing-owner and post-authentication changes, and for staging remaining protected until queue WAL confirmation.
17
+
18
+ ### Specification, verification and maintenance
19
+
20
+ - Remove all Verus source, inline specifications, ghost state, library contracts, runner, negative controls and CI; simplify Rust wrappers. Remove six deterministic local TLA+ models while retaining complete protocol models and product fault regressions.
21
+ - Extend cross-log attempt/epoch and checkpoint rewind, WAL caller/cache, reactivation, authenticated read, writer retirement and conditional-progress scenarios. Distinguish model checking, execution tests and source review without claiming complete implementation equivalence.
22
+ - Merge design, protocol, environmental premises and model-to-code correspondence into the [design and spec](docs/DESIGN.md). Move application integration into usage and checks/builds/releases into contributing; update both languages and add the `straw-protocol-review` skill.
23
+ - Delete per-iteration proof, measurement and acceptance reports. Retain only three public benchmarks cited by the performance guide and explicitly list them in source-package manifests. Their results describe the original 0.1.4 candidate, not this version's performance.
24
+
5
25
  ## 0.1.4
6
26
 
7
27
  ### Recovery and continuation
@@ -43,7 +63,7 @@
43
63
 
44
64
  - Scan source distributions and wheel contents, including native libraries, for local paths and recognizable credentials. Remap Rust build paths before compilation so released binaries omit local source, home and toolchain locations; CI checks artifacts before upload and rejects findings without printing matched secrets.
45
65
  - Require TLA+/Verus checks, semantic negative controls, environment-contract audits, Rust/Python tests, formatting and Clippy before release builds and publishing. TLC records its jar hash without enforcing a checksum; Verus logs distinguish successful proofs from expected semantic rejections. Verification files are organized by protocol, WAL, GC, storage and offline recovery, with independently reviewable environment assumptions.
46
- - Freeze new formal-verification work for this release. Integrated proofs cover specific production bodies and models; complete retain/reactivation, cross-log recovery, authentication and liveness composition remain deferred and receive regression/fault-injection coverage. See the [release scope and boundaries](docs/FORMAL_VERIFICATION.md#verification-scope-for-this-release). Passing tests does not complete these proofs, and prior performance measurements do not establish this build's throughput or latency.
66
+ - Freeze new formal-verification work for this release. Integrated proofs cover specific production bodies and models; complete retain/reactivation, cross-log recovery, authentication and liveness composition remain deferred and receive regression/fault-injection coverage. That scope describes the historical release. Passing tests does not complete these proofs, and prior performance measurements do not establish this build's throughput or latency.
47
67
 
48
68
  ## 0.1.3
49
69
 
@@ -119,4 +139,4 @@ Each queue requires one externally fenced coordinator. Automatic failover,
119
139
  live-pack compaction, journal compaction and a general distributed application
120
140
  checkpoint transaction are not provided. Additional network filesystems require
121
141
  deployment validation. See the [filesystem requirements](docs/FILESYSTEM.md) and
122
- [protocol guarantees](docs/PROTOCOL_AND_VERIFICATION.md).
142
+ [protocol guarantees](docs/DESIGN.md).
@@ -2,6 +2,26 @@
2
2
 
3
3
  [English](CHANGELOG.md)
4
4
 
5
+ ## 0.1.6
6
+
7
+ - 复用已确认的 writer registry 状态并为操作查找建立索引;不确定结果后重建。只缓存完整同步成功的 writer 目录,并保持 inode 身份。保留既有 publication WAL 屏障与 wire format。
8
+ - 将 GC 物理删除与目录同步移到 pool catalog 锁外;回执绑定本轮完成的计划,允许 collector 重叠执行且不消费新加入的 pending 工作。
9
+ - 为交替读取缓存最多八条已认证 extent 索引。扩展协议模型与实际回归,将真实 Rust 代码变异检查加入 CI,新增可重放的元数据开销探针。暂不实现元数据历史/回执退休和压缩。
10
+
11
+ ## 0.1.5
12
+
13
+ ### 所有权安全
14
+
15
+ - 修复 reactivation 复用既有公共 owner 名时没有确认其保护请求根的问题,包括锁外认证后 owner 被变更的竞态。在初次检查与重新加锁后核对实际 pack 闭包;内部 queue owner 绑定引用摘要。正确复用仍可成功,公共 owner 复用增加闭包/元数据检查。
16
+ - 保持公开 API、WAL 和 pack 格式及持久化顺序。新增既有 owner/认证后变更回归,以及 queue WAL 确认前 staging 不得被消费的回归。
17
+
18
+ ### 规格、验证与维护
19
+
20
+ - 完全移除 Verus 源码、内嵌规格、ghost state、库契约、运行器、负例与 CI,简化 Rust 包装层。删除六个确定性局部 TLA+ 模型,保留完整协议模型和产品故障回归。
21
+ - 补齐跨日志 attempt/epoch 与 checkpoint 回退、WAL 调用者/缓存、reactivation、认证读取、writer 退休及条件进展场景。模型检查、实际回归和源码审查分别说明,不宣称完整实现等价证明。
22
+ - 将设计、协议、环境假设及模型/实现对应合并到[设计与 spec](docs/DESIGN_zh.md)。应用集成并入使用指南,检查/构建/发布并入贡献指南;中英文同步,新增 `straw-protocol-review` skill。
23
+ - 删除逐轮证明、测量和验收过程报告,仅保留性能文档引用的三份公开基准;源码包明确列出允许包含的数据。保留结果对应原 0.1.4 候选构建,不代表本版性能。
24
+
5
25
  ## 0.1.4
6
26
 
7
27
  ### 恢复与续读
@@ -43,7 +63,7 @@
43
63
 
44
64
  - 扫描源码分发包与 wheel 内容(包括原生库),检查本机路径和可识别的凭据。编译时 remap Rust 路径,避免发布二进制携带本机源码、用户目录和工具链位置;CI 上传产物前检查,发现问题即拒绝,报告不输出命中的秘密内容。
45
65
  - release 构建和发布以前置检查为条件,包括 TLA+/Verus、语义负例、environment contract 审计、Rust/Python 测试、格式和 Clippy。TLC 只记录 jar 哈希、不做校验;Verus 日志明确区分证明通过与预期语义拒绝。验证目录按协议、WAL、GC、存储与离线恢复组织,环境假设可独立审查。
46
- - 本次发布冻结新增形式化验证。已集成证明覆盖具体生产函数和模型;完整 retain/reactivation、跨日志恢复、认证与活性组合延期,以回归和故障注入测试覆盖。见[本次发布范围与边界](docs/FORMAL_VERIFICATION_zh.md#本次发布的验证范围)。测试通过不等于这些证明已完成,历史性能测量也不能代表当前构建的吞吐或延迟。
66
+ - 本次发布冻结新增形式化验证。已集成证明覆盖具体生产函数和模型;完整 retain/reactivation、跨日志恢复、认证与活性组合延期,以回归和故障注入测试覆盖。该范围描述当时的版本。测试通过不等于这些证明已完成,历史性能测量也不能代表当前构建的吞吐或延迟。
47
67
 
48
68
  ## 0.1.3
49
69
 
@@ -80,4 +100,4 @@ straw 首次发布:面向 AI 应用、基于文件系统的持久化队列与
80
100
  - 本地与多机 I/O benchmark、应用负载采集与重放、独立协议模型,以及进程崩溃与恢复检查。
81
101
  - CPython 3.10–3.13 的 Linux x86_64 wheel、自动化产物测试与 PyPI Trusted Publishing、独立使用示例和配套中英文指南。
82
102
 
83
- 每个队列需要一个由外部机制隔离保护的协调器。尚不提供自动故障切换、存活 pack 整理、日志压缩或通用分布式应用 checkpoint 事务。其他网络文件系统需要单独验证部署语义。详见[文件系统要求](docs/FILESYSTEM_zh.md)与[协议保证](docs/PROTOCOL_AND_VERIFICATION_zh.md)。
103
+ 每个队列需要一个由外部机制隔离保护的协调器。尚不提供自动故障切换、存活 pack 整理、日志压缩或通用分布式应用 checkpoint 事务。其他网络文件系统需要单独验证部署语义。详见[文件系统要求](docs/FILESYSTEM_zh.md)与[协议保证](docs/DESIGN_zh.md)。
@@ -0,0 +1,145 @@
1
+ # Contributing
2
+
3
+ [中文版](CONTRIBUTING_zh.md)
4
+
5
+ Read the [design and spec](docs/DESIGN.md) before changing durable ordering,
6
+ recovery, ownership or authentication. Use the
7
+ [straw-protocol-review skill](.agents/skills/straw-protocol-review/SKILL.md)
8
+ to compare rules to TLA+, then trace the models to actual callers.
9
+
10
+ Protocol changes should explain success, uncertain effects, crash/retry and
11
+ compatibility. Add a reproducer for a real failure boundary and preserve a valid
12
+ success path. Update the rule, model, caller and regression together. Ordinary
13
+ local functions use compiler checks, Clippy and meaningful tests; do not rebuild
14
+ per-function proof scaffolding. Unknown wire versions fail explicitly; framing
15
+ changes require a format version.
16
+
17
+ When changing an environmental premise, update its stable ID in
18
+ [environment_contracts.json](verification/environment_contracts.json), the
19
+ [spec](docs/DESIGN.md#environment), consuming models and sensitivity controls.
20
+ Do not turn straw caller obligations into assumed filesystem guarantees.
21
+ User/contributor guides have paired English `.md` and Chinese `_zh.md` versions;
22
+ keep links, APIs and commands aligned. Application codecs and scheduling belong
23
+ in the consuming application. The project uses the [MIT license](LICENSE).
24
+
25
+ <a id="checks"></a>
26
+
27
+ ## Development and checks
28
+
29
+ Use Rust 1.89+, a C linker, CPython 3.10+ and Java 17+ for TLC. Install the
30
+ appropriate CPU/CUDA PyTorch build, then the editable development package:
31
+
32
+ ```sh
33
+ python -m pip install -e '.[test,build,dev]'
34
+ python -m black --check src tests examples tools verification
35
+ python -m isort --check-only src tests examples tools verification
36
+ cargo fmt --check
37
+ cargo clippy --locked --all-targets -- -D warnings
38
+ cargo clippy --locked --all-targets --features python -- -D warnings
39
+ cargo test --locked
40
+ python -m pytest
41
+ python verification/runners/environment_manifest.py --check
42
+ python verification/runners/check_tla.py
43
+ python verification/runners/check_mutations.py
44
+ python verification/protocol/checks/ownership_model.py --output /tmp/straw-ownership.json
45
+ python verification/wal/checks/crash_campaign.py --output /tmp/straw-crashes.json
46
+ ```
47
+
48
+ Rebuild/reinstall the native extension after Rust changes before running Python
49
+ tests. For focused model work, use `check_tla.py --area wal --area gc` or
50
+ `--case NAME`; run the full retained suite for release acceptance. Supply
51
+ `--jar /path/to/tla2tools.jar` to select TLC; otherwise the runner downloads its
52
+ configured release. It records the actual jar hash without enforcing a checksum.
53
+ Logs, configs and counterexamples default to `target/tla/`. Positives must pass;
54
+ negatives must fail the named invariant/temporal property. Parse errors, timeouts
55
+ and launch failures never count as semantic rejection.
56
+
57
+ The implementation mutation runner first passes an unmodified regression baseline,
58
+ then edits isolated Rust copies to reuse uncertain registry state, cache a directory
59
+ before its barriers, and skip GC parent barriers. Each must fail its named runtime
60
+ test; compilation failures, missing tests and timeouts do not count. Reports default
61
+ to `target/implementation-mutations/` and are retained by CI.
62
+
63
+ The inventory checks declared IDs, paths and environment imports. The independent
64
+ ownership model explores a bounded abstraction; the crash campaign checks byte
65
+ prefixes/corruption and process exits. None certifies storage-service or power-loss
66
+ behavior. Multi-client qualification is in [deployment](docs/FILESYSTEM.md#qualification).
67
+
68
+ <a id="build"></a>
69
+
70
+ ## Build and check distributions
71
+
72
+ Only the build machine needs Rust. Dependencies are declared in `pyproject.toml`
73
+ and pinned by `Cargo.lock`:
74
+
75
+ ```sh
76
+ python -m pip install build maturin twine
77
+ python tools/release_build.py python -m build --wheel --sdist
78
+ python -m twine check dist/*
79
+ python tools/check_artifact_privacy.py dist/*
80
+ python tools/check_wheel.py dist/<compatible-wheel>.whl --tests --report /tmp/straw-wheel-check.json
81
+ python tools/release_build.py python -m pip wheel --no-deps dist/straw_queue-*.tar.gz --wheel-dir rebuilt
82
+ ```
83
+
84
+ Use the actual compatible wheel filename and check the rebuilt wheel too.
85
+ `check_wheel.py` creates a temporary environment, reuses installed NumPy/PyTorch,
86
+ installs only the wheel without an index, rejects source imports and removes Rust
87
+ from the test PATH. It runs examples, multiprocess recovery, benchmark/GC and
88
+ trace checks; `--tests` adds the full Python suite, ownership model and crash campaign.
89
+
90
+ The release wrapper removes local source/toolchain paths from Rust output.
91
+ Artifact scans check archive contents for recognizable paths/secrets without
92
+ printing their values. Rust SBOM generation is disabled because it embeds local
93
+ crate paths; locked dependency versions remain in `Cargo.lock`.
94
+
95
+ The release workflow targets Linux x86_64, CPython 3.10–3.13 and manylinux/glibc
96
+ 2.28+. Wheels use interpreter-specific buffer APIs, not ABI3. Local builds receive
97
+ the platform tag they actually satisfy; never rename a tag to imply compatibility.
98
+ Use the [manylinux workflow](.github/workflows/wheels.yml), or on Linux:
99
+
100
+ ```sh
101
+ python -m pip install 'maturin[zig,patchelf]>=1.12,<2'
102
+ python tools/release_build.py maturin build --release --locked --strip --zig \
103
+ --compatibility manylinux_2_28 --out dist
104
+ ```
105
+
106
+ <a id="release"></a>
107
+
108
+ ## CI and releases
109
+
110
+ [Tests](.github/workflows/tests.yml) run all TLA cases in 16 disjoint shards,
111
+ formatting, both Clippy configurations, Rust tests and installed-wheel checks on
112
+ CPython 3.10–3.13. [Wheels](.github/workflows/wheels.yml) requires that same-commit
113
+ workflow, checks each portable wheel and a wheel rebuilt from the sdist, then
114
+ uploads artifacts. Failed, cancelled, skipped or timed-out checks block release.
115
+ Hosted CI uses a local Linux filesystem and CPU PyTorch; inspect hosted results
116
+ separately from local checks and distributed deployment tests.
117
+
118
+ For a release, align the versions in `Cargo.toml`, `pyproject.toml` and the
119
+ `straw` entry in `Cargo.lock`; record compatibility/limits in the changelog.
120
+ A matching new `v*` tag triggers publication of the already tested artifacts.
121
+ PRs and manual dispatch build/test without publishing. Keep the source revision
122
+ and wheel hash with release artifacts; rebuilding changes the artifact identity.
123
+ Do not overwrite an existing published version/tag.
124
+
125
+ The publish job uses GitHub OIDC with environment `pypi`. Configure PyPI's
126
+ publisher for project `straw-queue`, repository `zhuzilin/straw`, workflow
127
+ `wheels.yml`, environment `pypi`; the workflow filename has no directory prefix.
128
+ No PyPI token is required by this workflow. See the
129
+ [PyPI publisher setup](https://docs.pypi.org/trusted-publishers/creating-a-project-through-oidc/)
130
+ for service setup. Both workflows also support manual dispatch from Actions.
131
+
132
+ <a id="evidence"></a>
133
+
134
+ ## Reports and public benchmarks
135
+
136
+ Keep per-run verification reports, attempted fixes, wheels, credentials, machine
137
+ addresses, payloads and raw logs in CI artifacts or ignored local directories.
138
+ Use fresh bounded test roots and clean them only after owned processes stop.
139
+
140
+ `verification/measurements/` contains only selected public benchmark data cited
141
+ by [benchmarks](docs/BENCHMARKS.md#published-results). A retained result needs
142
+ workload/method, build/probe identity, units, samples and limitations. Compare
143
+ payload sizes, publication granularity, fanout, durability and cache conditions;
144
+ do not imply an old build's numbers describe current code. Record one-off task
145
+ acceptance in the PR or CI result rather than adding another dated JSON file.
@@ -0,0 +1,82 @@
1
+ # 贡献指南
2
+
3
+ [English](CONTRIBUTING.md)
4
+
5
+ 修改持久化顺序、恢复、所有权或认证前,阅读[设计与 spec](docs/DESIGN_zh.md)。使用 [straw-protocol-review skill](.agents/skills/straw-protocol-review/SKILL.md) 先核对规则与 TLA+,再沿实际调用链核对实现。
6
+
7
+ 协议改动说明成功、报错但已生效、崩溃/重试及兼容性。针对真实故障边界添加复现,并保留合法成功路径;同步规则、模型、调用者与回归。普通局部函数使用编译器、Clippy 和有意义的测试,不重建逐函数证明。未知 wire 版本明确拒绝,framing 变化需要格式版本。
8
+
9
+ 修改环境前提时,同步 [environment_contracts.json](verification/environment_contracts.json) 的稳定 ID、[spec](docs/DESIGN_zh.md#environment)、模型与敏感性负例,不把 straw 调用者义务改成文件系统假设。用户/贡献者文档有中英文两版,链接、API 与命令保持一致。应用 codec 与调度留在使用方。项目使用 [MIT 许可证](LICENSE)。
10
+
11
+ <a id="checks"></a>
12
+
13
+ ## 开发与检查
14
+
15
+ 需要 Rust 1.89+、C linker、CPython 3.10+;TLC 需要 Java 17+。安装适合环境的 CPU/CUDA PyTorch,再安装开发包:
16
+
17
+ ```sh
18
+ python -m pip install -e '.[test,build,dev]'
19
+ python -m black --check src tests examples tools verification
20
+ python -m isort --check-only src tests examples tools verification
21
+ cargo fmt --check
22
+ cargo clippy --locked --all-targets -- -D warnings
23
+ cargo clippy --locked --all-targets --features python -- -D warnings
24
+ cargo test --locked
25
+ python -m pytest
26
+ python verification/runners/environment_manifest.py --check
27
+ python verification/runners/check_tla.py
28
+ python verification/runners/check_mutations.py
29
+ python verification/protocol/checks/ownership_model.py --output /tmp/straw-ownership.json
30
+ python verification/wal/checks/crash_campaign.py --output /tmp/straw-crashes.json
31
+ ```
32
+
33
+ Rust 修改后先重新构建/安装 native 扩展,再跑 Python 测试。局部模型工作可用 `check_tla.py --area wal --area gc` 或 `--case NAME`;发布验收运行全部保留场景。`--jar /path/to/tla2tools.jar` 指定 TLC,否则 runner 下载配置的发行包;记录实际 jar 哈希,不强制 checksum。日志、配置和反例默认在 `target/tla/`。正例必须通过,负例必须违反指定不变量/时序性质;解析错误、超时和启动失败不算检出。
34
+
35
+ 环境登记检查核对声明的 ID、路径与模块导入。独立所有权模型探索有限抽象;crash campaign 检查逐字节前缀/损坏和进程退出,都不认证存储服务故障或掉电行为。多客户端验证见[部署指南](docs/FILESYSTEM_zh.md#qualification)。
36
+
37
+ 实现 mutation runner 先通过未修改的回归基线,再在隔离 Rust 副本中复用不确定 registry 状态、提前缓存目录、跳过 GC 父目录屏障。每项必须使指定运行时测试失败;编译错误、缺失测试和超时不算检出。报告默认保存在 `target/implementation-mutations/`,由 CI 留存。
38
+
39
+ <a id="build"></a>
40
+
41
+ ## 构建与检查发行包
42
+
43
+ 只有构建机需要 Rust。依赖由 `pyproject.toml` 声明、`Cargo.lock` 固定:
44
+
45
+ ```sh
46
+ python -m pip install build maturin twine
47
+ python tools/release_build.py python -m build --wheel --sdist
48
+ python -m twine check dist/*
49
+ python tools/check_artifact_privacy.py dist/*
50
+ python tools/check_wheel.py dist/<compatible-wheel>.whl --tests --report /tmp/straw-wheel-check.json
51
+ python tools/release_build.py python -m pip wheel --no-deps dist/straw_queue-*.tar.gz --wheel-dir rebuilt
52
+ ```
53
+
54
+ 使用实际兼容 wheel 的文件名,并检查从 sdist 重建的 wheel。`check_wheel.py` 创建临时环境,复用已安装 NumPy/PyTorch,不访问索引,只安装 wheel,拒绝源码导入,并从测试 PATH 移除 Rust。它运行示例、多进程恢复、benchmark/GC 和 trace 检查;`--tests` 加上全部 Python 回归、所有权模型和 crash campaign。
55
+
56
+ 发布包装器移除 Rust 产物中的本地源码/工具链路径。隐私检查扫描 archive 内可识别的路径/凭据,不打印匹配值。自动 Rust SBOM 因嵌入本地 crate 路径而关闭;依赖版本仍保存在 `Cargo.lock`。
57
+
58
+ 发布工作流面向 Linux x86_64、CPython 3.10–3.13、manylinux/glibc 2.28+。绑定使用区分解释器版本的 buffer API,不是 ABI3。本地构建只获得实际满足的平台 tag,不得改名冒充兼容性。使用 [manylinux 工作流](.github/workflows/wheels.yml),或在 Linux 上运行:
59
+
60
+ ```sh
61
+ python -m pip install 'maturin[zig,patchelf]>=1.12,<2'
62
+ python tools/release_build.py maturin build --release --locked --strip --zig \
63
+ --compatibility manylinux_2_28 --out dist
64
+ ```
65
+
66
+ <a id="release"></a>
67
+
68
+ ## CI 与发布
69
+
70
+ [测试工作流](.github/workflows/tests.yml)运行全部 TLA 场景的 16 个独立分片、格式、两种 Clippy 配置、Rust 测试,以及 CPython 3.10–3.13 的已安装 wheel 检查。[Wheel 工作流](.github/workflows/wheels.yml)先要求同一提交通过上述工作流,再验证每个可移植 wheel 和从 sdist 重建的 wheel,之后上传产物。失败、取消、跳过或超时阻止发布。托管 CI 使用本地 Linux 文件系统和 CPU PyTorch;本地验收、托管结果与分布式部署测试分别确认。
71
+
72
+ 发布前同步 `Cargo.toml`、`pyproject.toml` 和 `Cargo.lock` 中 `straw` 的版本,并在 changelog 写明兼容性与限制。新的匹配 `v*` tag 触发发布已经测试过的产物;PR 和手动触发只构建/测试。源码 revision 与 wheel 哈希随发布产物保存,重新构建会改变产物身份。不要覆盖已发布版本/tag。
73
+
74
+ 发布使用 GitHub OIDC 和 `pypi` environment。PyPI publisher 配置为项目 `straw-queue`、仓库 `zhuzilin/straw`、workflow `wheels.yml`、environment `pypi`;workflow 文件名不带目录。本工作流不需要 PyPI token,服务端配置见 [PyPI 指南](https://docs.pypi.org/trusted-publishers/creating-a-project-through-oidc/)。两条工作流都支持从 Actions 手动触发。
75
+
76
+ <a id="evidence"></a>
77
+
78
+ ## 报告与公开基准
79
+
80
+ 逐轮验证报告、尝试过程、wheel、凭据、机器地址、载荷和原始日志保存在 CI artifacts 或忽略的本地目录。使用全新、有界的测试根,仅在自有进程停止后清理。
81
+
82
+ `verification/measurements/` 只保留[性能文档](docs/BENCHMARKS_zh.md#published-results)引用的精选公开基准:说明负载/方法、构建/探针身份、单位、样本和限制。比较时保持载荷大小、发布粒度、fanout、持久化与缓存条件可比,不把旧构建结果当成当前代码性能。单次任务验收写入 PR 或 CI 结果,不再新增逐日 JSON 流水账。
@@ -370,7 +370,7 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
370
370
 
371
371
  [[package]]
372
372
  name = "straw"
373
- version = "0.1.4"
373
+ version = "0.1.6"
374
374
  dependencies = [
375
375
  "pyo3",
376
376
  "serde",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "straw"
3
- version = "0.1.4"
3
+ version = "0.1.6"
4
4
  edition = "2024"
5
5
  rust-version = "1.89"
6
6
  license = "MIT"
@@ -9,8 +9,9 @@ description = "Durable shared-filesystem queues and immutable packed records"
9
9
  include = [
10
10
  "Cargo.toml", "Cargo.lock", "pyproject.toml", "README*.md", "LICENSE",
11
11
  "CHANGELOG*.md", "CONTRIBUTING*.md", ".github/workflows/*.yml",
12
+ ".agents/skills/straw-protocol-review/**",
12
13
  "rust/*.rs", "src/**/*.py", "docs/**/*.md", "examples/*.py",
13
- "tests/*.py", "tests/native.rs", "verification/**/*.md", "verification/**/*.py", "verification/**/*.rs", "verification/**/*.c", "verification/environment_contracts.json", "verification/measurements/*.json", "verification/**/tla/*.tla", "verification/**/tla/*.cfg", "tools/*.py",
14
+ "tests/*.py", "tests/native.rs", "verification/**/*.md", "verification/**/*.py", "verification/**/*.rs", "verification/**/*.c", "verification/environment_contracts.json", "verification/measurements/20261026-release-comparison.json", "verification/measurements/20261026-release-100gb.json", "verification/measurements/20261026-release-visibility.json", "verification/**/tla/*.tla", "verification/**/tla/*.cfg", "tools/*.py",
14
15
  ]
15
16
  readme = "README.md"
16
17
 
@@ -33,9 +34,6 @@ pyo3 = { version = "0.23.5", optional = true }
33
34
  [dev-dependencies]
34
35
  tempfile = "3.27"
35
36
 
36
- [lints.rust]
37
- unexpected_cfgs = { level = "warn", check-cfg = ["cfg(straw_verus)"] }
38
-
39
37
  [[example]]
40
38
  name = "large_extent_probe"
41
39
  path = "verification/storage/probes/large_extent_probe.rs"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: straw-queue
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Operating System :: POSIX :: Linux
6
6
  Classifier: Programming Language :: Python :: 3
@@ -46,7 +46,7 @@ straw currently serves the rollout and training pipelines in
46
46
  **[slime](https://github.com/THUDM/slime)**, including rollout-to-rollout and
47
47
  rollout-to-training queues that share tensor storage. It is an independent AI
48
48
  application library, also suited to preprocessing and inference pipelines. See
49
- the [design rationale](docs/DESIGN.md) and [application integration](docs/APPLICATIONS.md).
49
+ the [design rationale](docs/DESIGN.md) and [application integration](docs/USAGE.md#integration).
50
50
 
51
51
  ## Multi-machine parallel reads and writes
52
52
 
@@ -57,7 +57,7 @@ results and consumer progress, and coordinates shared ownership and GC through
57
57
  cross-client catalog locks. Reader pins and explicit completion signals protect
58
58
  data until every consumer has finished. See the
59
59
  [concurrency rules](docs/USAGE.md#concurrency-processes-and-threads) and
60
- [protocol](docs/PROTOCOL_AND_VERIFICATION.md).
60
+ [protocol](docs/DESIGN.md).
61
61
 
62
62
  ## Avoid the small-file bottleneck
63
63
 
@@ -71,7 +71,7 @@ File counts grow with packs and writer lifetimes instead of individual samples;
71
71
  **Status:** early release, Linux/POSIX. One externally fenced coordinator per
72
72
  queue; no automatic leader election or journal/live-pack compaction. Applications
73
73
  must provide real reader-completion signals before reclamation. See
74
- [filesystem requirements](docs/FILESYSTEM.md) and [protocol guarantees](docs/PROTOCOL_AND_VERIFICATION.md).
74
+ [filesystem requirements](docs/FILESYSTEM.md) and [protocol guarantees](docs/DESIGN.md).
75
75
 
76
76
  ## Install
77
77
 
@@ -85,7 +85,7 @@ pip selects a compatible wheel containing the Rust extension.
85
85
  **Installing a wheel does not require Rust or maturin.**
86
86
  NumPy and PyTorch are runtime dependencies; an existing compatible PyTorch
87
87
  installation can be reused. Distribution name: `straw-queue`; import: `straw`.
88
- See [supported platforms, offline installation and source builds](docs/BUILDING.md).
88
+ See [supported platforms, offline installation and source builds](CONTRIBUTING.md#build).
89
89
 
90
90
  ## Write, read, keep, reclaim
91
91
 
@@ -172,34 +172,20 @@ workers stop. [Multi-host benchmarks and trace replay](docs/BENCHMARKS.md).
172
172
 
173
173
  ## Read next
174
174
 
175
- - [Rationale and architecture](docs/DESIGN.md)
176
- - [Records, tensors, tasks, recovery and GC](docs/USAGE.md)
177
- - [Filesystem deployment and file-count planning](docs/FILESYSTEM.md)
178
- - [Protocol, prior work and correctness boundaries](docs/PROTOCOL_AND_VERIFICATION.md)
179
- - [TLA+ / Verus verification](docs/FORMAL_VERIFICATION.md): layered coverage, production Rust proofs and counterexamples
180
- - [Executable verification](docs/VERIFICATION.md) and [binary format](docs/FORMAT.md)
181
- - [Wheel builds and release checks](docs/BUILDING.md)
182
- - [Release notes](CHANGELOG.md)
183
- - [Application integration](docs/APPLICATIONS.md) and [contributing](CONTRIBUTING.md)
184
-
185
- ## Build and test on GitHub
186
-
187
- - [Full tests](.github/workflows/tests.yml): Rust tests, formatting and Clippy,
188
- plus the complete Python suite, ownership model, crash campaign, examples and
189
- bounded I/O/GC benchmark against installed wheels on CPython 3.10–3.13.
190
- - [Wheels](.github/workflows/wheels.yml): build and verify Linux x86_64 wheels
191
- for CPython 3.10–3.13 (manylinux/glibc 2.28+), plus a source archive and rebuild
192
- check. Download the outputs from the run's **Artifacts** section. Version-tag
193
- pushes publish the verified artifacts to PyPI through Trusted Publishing. The
194
- same-commit complete verification workflow must pass before package uploads.
195
-
196
- Both workflows support **Actions → select workflow → Run workflow**. Tests also
197
- run on pushes and pull requests; wheels run on pull requests and `v*` tags.
198
- Hosted CI uses a local filesystem and CPU PyTorch; deployment qualification on
199
- multiple JuiceFS clients and GPU training use [separate checks](docs/VERIFICATION.md).
200
- See [build and release instructions](docs/BUILDING.md).
175
+ - [Design and protocol spec](docs/DESIGN.md): architecture, premises, distributed protocol/WAL/GC and model-to-code correspondence
176
+ - [Usage](docs/USAGE.md): installation, APIs, recovery and application integration
177
+ - [Filesystem deployment](docs/FILESYSTEM.md): mount requirements, storage planning and multi-client checks
178
+ - [Benchmarks](docs/BENCHMARKS.md): measurement, trace replay and selected public results
179
+ - [Binary format](docs/FORMAT.md): compatible readers and format changes
180
+ - [Contributing](CONTRIBUTING.md): tests, builds and releases; [changelog](CHANGELOG.md)
181
+
182
+ The [tests](.github/workflows/tests.yml) and [wheels](.github/workflows/wheels.yml)
183
+ workflows provide CI checks and downloadable artifacts; version tags publish
184
+ tested artifacts. See [contributing](CONTRIBUTING.md#release) for setup and release steps.
201
185
 
202
186
  ## License
203
187
 
204
188
  [MIT](LICENSE).
205
189
 
190
+ [straw-protocol-review skill](.agents/skills/straw-protocol-review/SKILL.md): review document → TLA+ → implementation.
191
+