briefloop 0.30.0__tar.gz → 0.31.3__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 (1274) hide show
  1. briefloop-0.31.3/CHANGELOG.md +2633 -0
  2. briefloop-0.31.3/PKG-INFO +360 -0
  3. briefloop-0.31.3/README.md +320 -0
  4. briefloop-0.31.3/VERSION +1 -0
  5. briefloop-0.31.3/desktop/electron/package-lock.json +3638 -0
  6. briefloop-0.31.3/desktop/electron/package.json +82 -0
  7. briefloop-0.31.3/docs/direct-mode.md +46 -0
  8. briefloop-0.31.3/docs/quarterly-report.md +45 -0
  9. briefloop-0.31.3/docs/release-0.31.0.md +23 -0
  10. briefloop-0.31.3/docs/release-0.31.1.md +25 -0
  11. briefloop-0.31.3/docs//347/233/256/346/240/207/351/251/261/345/212/250/347/240/224/347/251/266.md +43 -0
  12. briefloop-0.31.3/frontend/app.js +2229 -0
  13. briefloop-0.31.3/frontend/composer-options.js +50 -0
  14. briefloop-0.31.3/frontend/next-report.js +55 -0
  15. briefloop-0.31.3/frontend/provider-settings.js +69 -0
  16. briefloop-0.31.3/frontend/quick-report.js +86 -0
  17. briefloop-0.31.3/frontend/report-sticky-layout.js +33 -0
  18. briefloop-0.31.3/frontend/research-goal-progress.js +18 -0
  19. briefloop-0.31.3/frontend/schedules.js +34 -0
  20. briefloop-0.31.3/frontend/search-settings.js +44 -0
  21. briefloop-0.31.3/frontend/skill-verification.js +16 -0
  22. briefloop-0.31.3/pyproject.toml +51 -0
  23. briefloop-0.31.3/scripts/check_versions.py +184 -0
  24. briefloop-0.31.3/src/briefloop/__init__.py +1 -0
  25. briefloop-0.31.3/src/briefloop/agent_prompts.py +30 -0
  26. briefloop-0.31.3/src/briefloop/analyst.py +451 -0
  27. briefloop-0.31.3/src/briefloop/backends/opencode_v2.py +350 -0
  28. briefloop-0.31.3/src/briefloop/chat_tools.py +380 -0
  29. briefloop-0.31.3/src/briefloop/cli.py +335 -0
  30. briefloop-0.31.3/src/briefloop/connectors/MATERIALS.md +233 -0
  31. briefloop-0.31.3/src/briefloop/connectors/grants.py +115 -0
  32. briefloop-0.31.3/src/briefloop/connectors/receipts.py +48 -0
  33. briefloop-0.31.3/src/briefloop/connectors/runtime_tools.py +47 -0
  34. briefloop-0.31.3/src/briefloop/connectors/tasks.py +196 -0
  35. briefloop-0.31.3/src/briefloop/coverage_record.py +104 -0
  36. briefloop-0.31.3/src/briefloop/direct_reports.py +204 -0
  37. briefloop-0.31.3/src/briefloop/document_model.py +315 -0
  38. briefloop-0.31.3/src/briefloop/draft_checks.py +183 -0
  39. briefloop-0.31.3/src/briefloop/draft_completion.py +309 -0
  40. briefloop-0.31.3/src/briefloop/fast_reports.py +292 -0
  41. briefloop-0.31.3/src/briefloop/finding_anchors.py +78 -0
  42. briefloop-0.31.3/src/briefloop/industry_data.py +135 -0
  43. briefloop-0.31.3/src/briefloop/interactive_runtime.py +487 -0
  44. briefloop-0.31.3/src/briefloop/jev_checks.py +160 -0
  45. briefloop-0.31.3/src/briefloop/learning.py +691 -0
  46. briefloop-0.31.3/src/briefloop/length.py +81 -0
  47. briefloop-0.31.3/src/briefloop/models.py +833 -0
  48. briefloop-0.31.3/src/briefloop/native_harness.py +600 -0
  49. briefloop-0.31.3/src/briefloop/native_orchestrator.py +627 -0
  50. briefloop-0.31.3/src/briefloop/native_roles.py +822 -0
  51. briefloop-0.31.3/src/briefloop/progress.py +293 -0
  52. briefloop-0.31.3/src/briefloop/prompt_assets/core.zh.md +23 -0
  53. briefloop-0.31.3/src/briefloop/prompt_assets/role.analyst.zh.md +15 -0
  54. briefloop-0.31.3/src/briefloop/prompt_assets/role.direct_writer.zh.md +5 -0
  55. briefloop-0.31.3/src/briefloop/prompt_assets/role.evaluator.zh.md +22 -0
  56. briefloop-0.31.3/src/briefloop/prompt_assets/role.reviewer.zh.md +23 -0
  57. briefloop-0.31.3/src/briefloop/prompt_assets/role.scout.zh.md +18 -0
  58. briefloop-0.31.3/src/briefloop/reconciliation.py +199 -0
  59. briefloop-0.31.3/src/briefloop/release.py +509 -0
  60. briefloop-0.31.3/src/briefloop/report_browsing.py +128 -0
  61. briefloop-0.31.3/src/briefloop/report_time.py +216 -0
  62. briefloop-0.31.3/src/briefloop/report_tools.py +39 -0
  63. briefloop-0.31.3/src/briefloop/research_goals.py +69 -0
  64. briefloop-0.31.3/src/briefloop/research_plan.py +879 -0
  65. briefloop-0.31.3/src/briefloop/review_capability.py +114 -0
  66. briefloop-0.31.3/src/briefloop/revision_metadata.py +90 -0
  67. briefloop-0.31.3/src/briefloop/runtime.py +1780 -0
  68. briefloop-0.31.3/src/briefloop/schedules.py +211 -0
  69. briefloop-0.31.3/src/briefloop/scout_tools.py +266 -0
  70. briefloop-0.31.3/src/briefloop/server.py +990 -0
  71. briefloop-0.31.3/src/briefloop/skill_delivery.py +84 -0
  72. briefloop-0.31.3/src/briefloop/skill_verification.py +223 -0
  73. briefloop-0.31.3/src/briefloop/sources.py +591 -0
  74. briefloop-0.31.3/src/briefloop/static/app.js +312 -0
  75. briefloop-0.31.3/src/briefloop/static/index.html +111 -0
  76. briefloop-0.31.3/src/briefloop/static/native-engine-image-worker.mjs +8 -0
  77. briefloop-0.31.3/src/briefloop/static/native-engine-licenses.txt +3346 -0
  78. briefloop-0.31.3/src/briefloop/static/native-engine.mjs +2921 -0
  79. briefloop-0.31.3/src/briefloop/static/release-notes.json +4 -0
  80. briefloop-0.31.3/src/briefloop/static/style.css +1828 -0
  81. briefloop-0.31.3/src/briefloop/store.py +1026 -0
  82. briefloop-0.31.3/src/briefloop/task_context.py +48 -0
  83. briefloop-0.31.3/src/briefloop/task_progress.py +216 -0
  84. briefloop-0.31.3/src/briefloop/tavily.py +370 -0
  85. briefloop-0.31.3/src/briefloop/version_execution.py +140 -0
  86. briefloop-0.31.3/src/briefloop/websearch.py +317 -0
  87. briefloop-0.31.3/src/briefloop/workflow_assets/business_report/manifest.json +20 -0
  88. briefloop-0.31.3/src/briefloop/workflow_assets/business_report/methods/industry_quarterly.md +29 -0
  89. briefloop-0.31.3/src/briefloop/workflow_assets/business_report/methods/industry_quarterly_review.md +10 -0
  90. briefloop-0.31.3/src/briefloop/writing_guidance.py +59 -0
  91. briefloop-0.31.3/src/briefloop.egg-info/PKG-INFO +360 -0
  92. briefloop-0.31.3/src/briefloop.egg-info/SOURCES.txt +1048 -0
  93. briefloop-0.31.3/tests/frontend_app_updates.mjs +102 -0
  94. briefloop-0.31.3/tests/frontend_brand_colors.mjs +14 -0
  95. briefloop-0.31.3/tests/frontend_chat_polling.mjs +81 -0
  96. briefloop-0.31.3/tests/frontend_excel_export.mjs +93 -0
  97. briefloop-0.31.3/tests/frontend_home_v2.mjs +26 -0
  98. briefloop-0.31.3/tests/frontend_learning_authorization.mjs +54 -0
  99. briefloop-0.31.3/tests/frontend_model_catalog_refresh.mjs +161 -0
  100. briefloop-0.31.3/tests/frontend_model_label.mjs +54 -0
  101. briefloop-0.31.3/tests/frontend_native_runtime.mjs +42 -0
  102. briefloop-0.31.3/tests/frontend_next_report.mjs +55 -0
  103. briefloop-0.31.3/tests/frontend_open_brief_status.mjs +141 -0
  104. briefloop-0.31.3/tests/frontend_polling.mjs +67 -0
  105. briefloop-0.31.3/tests/frontend_provider_capabilities.mjs +70 -0
  106. briefloop-0.31.3/tests/frontend_quick_report.mjs +72 -0
  107. briefloop-0.31.3/tests/frontend_release_navigation.mjs +94 -0
  108. briefloop-0.31.3/tests/frontend_report_export.mjs +103 -0
  109. briefloop-0.31.3/tests/frontend_review_capability.mjs +120 -0
  110. briefloop-0.31.3/tests/frontend_save_barrier.mjs +220 -0
  111. briefloop-0.31.3/tests/frontend_skill_verification.mjs +12 -0
  112. briefloop-0.31.3/tests/frontend_startup_recovery.mjs +99 -0
  113. briefloop-0.31.3/tests/frontend_version_bodies.mjs +71 -0
  114. briefloop-0.31.3/tests/frontend_welcome_gate.mjs +114 -0
  115. briefloop-0.31.3/tests/frontend_writing_preferences.mjs +43 -0
  116. briefloop-0.31.3/tests/test_agent_commands.py +179 -0
  117. briefloop-0.31.3/tests/test_analyst_draft_versions.py +172 -0
  118. briefloop-0.31.3/tests/test_assessment_followup.py +119 -0
  119. briefloop-0.31.3/tests/test_bridge_harness.py +331 -0
  120. briefloop-0.31.3/tests/test_builtin_templates.py +97 -0
  121. briefloop-0.31.3/tests/test_chat_execution.py +124 -0
  122. briefloop-0.31.3/tests/test_chat_model_selection.py +74 -0
  123. briefloop-0.31.3/tests/test_chat_stop.py +68 -0
  124. briefloop-0.31.3/tests/test_cli_goal_handoff.py +56 -0
  125. briefloop-0.31.3/tests/test_connection_test_history.py +18 -0
  126. briefloop-0.31.3/tests/test_connector_materials.py +381 -0
  127. briefloop-0.31.3/tests/test_coverage_record.py +27 -0
  128. briefloop-0.31.3/tests/test_direct_reports.py +205 -0
  129. briefloop-0.31.3/tests/test_document_workflows.py +100 -0
  130. briefloop-0.31.3/tests/test_draft_completion.py +127 -0
  131. briefloop-0.31.3/tests/test_draft_contract.py +52 -0
  132. briefloop-0.31.3/tests/test_draft_republish.py +38 -0
  133. briefloop-0.31.3/tests/test_english_reports.py +114 -0
  134. briefloop-0.31.3/tests/test_evidence.py +162 -0
  135. briefloop-0.31.3/tests/test_evidence_parse_failures.py +84 -0
  136. briefloop-0.31.3/tests/test_export_labeling.py +184 -0
  137. briefloop-0.31.3/tests/test_export_layout_swap.py +56 -0
  138. briefloop-0.31.3/tests/test_export_xlsx.py +489 -0
  139. briefloop-0.31.3/tests/test_fact_check_contract.py +204 -0
  140. briefloop-0.31.3/tests/test_fact_check_orchestration.py +184 -0
  141. briefloop-0.31.3/tests/test_fact_check_switch.py +79 -0
  142. briefloop-0.31.3/tests/test_fast_evidence.py +45 -0
  143. briefloop-0.31.3/tests/test_fast_qualifier_checks.py +38 -0
  144. briefloop-0.31.3/tests/test_fetch_contact.py +17 -0
  145. briefloop-0.31.3/tests/test_figure_text.py +79 -0
  146. briefloop-0.31.3/tests/test_generation_schema_guidance.py +42 -0
  147. briefloop-0.31.3/tests/test_host_bins.py +89 -0
  148. briefloop-0.31.3/tests/test_html_export.py +155 -0
  149. briefloop-0.31.3/tests/test_html_export_states.py +160 -0
  150. briefloop-0.31.3/tests/test_industry_export.py +57 -0
  151. briefloop-0.31.3/tests/test_industry_flow.py +71 -0
  152. briefloop-0.31.3/tests/test_industry_research.py +85 -0
  153. briefloop-0.31.3/tests/test_jev_checks.py +125 -0
  154. briefloop-0.31.3/tests/test_learning_authorization.py +157 -0
  155. briefloop-0.31.3/tests/test_learning_integrity.py +71 -0
  156. briefloop-0.31.3/tests/test_length.py +41 -0
  157. briefloop-0.31.3/tests/test_length_policy.py +113 -0
  158. briefloop-0.31.3/tests/test_market_convention.py +142 -0
  159. briefloop-0.31.3/tests/test_monthly_research.py +227 -0
  160. briefloop-0.31.3/tests/test_native_analyst.py +217 -0
  161. briefloop-0.31.3/tests/test_native_evaluator.py +231 -0
  162. briefloop-0.31.3/tests/test_native_goal_research.py +118 -0
  163. briefloop-0.31.3/tests/test_native_harness.py +353 -0
  164. briefloop-0.31.3/tests/test_native_learning.py +70 -0
  165. briefloop-0.31.3/tests/test_native_orchestrator.py +399 -0
  166. briefloop-0.31.3/tests/test_native_review_contract.py +72 -0
  167. briefloop-0.31.3/tests/test_native_scout.py +318 -0
  168. briefloop-0.31.3/tests/test_native_scout_round_paths.py +102 -0
  169. briefloop-0.31.3/tests/test_numeric_occurrence_review.py +149 -0
  170. briefloop-0.31.3/tests/test_office_cli.py +602 -0
  171. briefloop-0.31.3/tests/test_opencode_harness.py +655 -0
  172. briefloop-0.31.3/tests/test_opencode_idle.py +161 -0
  173. briefloop-0.31.3/tests/test_opencode_prompt_versions.py +21 -0
  174. briefloop-0.31.3/tests/test_opencode_search_prompt.py +67 -0
  175. briefloop-0.31.3/tests/test_opencode_v2.py +323 -0
  176. briefloop-0.31.3/tests/test_plain_isolation.py +94 -0
  177. briefloop-0.31.3/tests/test_previous_report.py +133 -0
  178. briefloop-0.31.3/tests/test_product_summary_consistency.py +18 -0
  179. briefloop-0.31.3/tests/test_progress_pipeline.py +0 -0
  180. briefloop-0.31.3/tests/test_public_research.py +80 -0
  181. briefloop-0.31.3/tests/test_quality_checklist_candidate.py +194 -0
  182. briefloop-0.31.3/tests/test_quarterly_report.py +69 -0
  183. briefloop-0.31.3/tests/test_reader_contract.py +161 -0
  184. briefloop-0.31.3/tests/test_reader_source_export.py +148 -0
  185. briefloop-0.31.3/tests/test_reader_workflow.py +94 -0
  186. briefloop-0.31.3/tests/test_reconciliation.py +159 -0
  187. briefloop-0.31.3/tests/test_report_browsing.py +115 -0
  188. briefloop-0.31.3/tests/test_report_deletion.py +78 -0
  189. briefloop-0.31.3/tests/test_report_time.py +146 -0
  190. briefloop-0.31.3/tests/test_research_budget.py +165 -0
  191. briefloop-0.31.3/tests/test_research_goals.py +114 -0
  192. briefloop-0.31.3/tests/test_research_handoff.py +105 -0
  193. briefloop-0.31.3/tests/test_research_plan.py +225 -0
  194. briefloop-0.31.3/tests/test_research_response_admission.py +120 -0
  195. briefloop-0.31.3/tests/test_review_public_metadata.py +147 -0
  196. briefloop-0.31.3/tests/test_review_snapshot.py +27 -0
  197. briefloop-0.31.3/tests/test_revision_citations.py +163 -0
  198. briefloop-0.31.3/tests/test_revision_edits.py +202 -0
  199. briefloop-0.31.3/tests/test_rich_document.py +251 -0
  200. briefloop-0.31.3/tests/test_runtime_names.py +13 -0
  201. briefloop-0.31.3/tests/test_runtime_permissions.py +180 -0
  202. briefloop-0.31.3/tests/test_schedules.py +59 -0
  203. briefloop-0.31.3/tests/test_scout_coverage.py +346 -0
  204. briefloop-0.31.3/tests/test_server_boundary.py +203 -0
  205. briefloop-0.31.3/tests/test_skill_verification.py +143 -0
  206. briefloop-0.31.3/tests/test_source_ingestion.py +194 -0
  207. briefloop-0.31.3/tests/test_sources_provenance.py +328 -0
  208. briefloop-0.31.3/tests/test_store_wal.py +61 -0
  209. briefloop-0.31.3/tests/test_table_citation_advisory.py +101 -0
  210. briefloop-0.31.3/tests/test_task_context.py +96 -0
  211. briefloop-0.31.3/tests/test_task_notify.py +63 -0
  212. briefloop-0.31.3/tests/test_task_progress.py +46 -0
  213. briefloop-0.31.3/tests/test_tavily.py +133 -0
  214. briefloop-0.31.3/tests/test_template_conversion.py +326 -0
  215. briefloop-0.31.3/tests/test_version_execution.py +149 -0
  216. briefloop-0.31.3/tests/test_writer_context.py +131 -0
  217. briefloop-0.31.3/tests/test_writer_input.py +354 -0
  218. briefloop-0.31.3/tests/test_xlsx_preview.py +121 -0
  219. briefloop-0.30.0/CHANGELOG.md +0 -2562
  220. briefloop-0.30.0/PKG-INFO +0 -358
  221. briefloop-0.30.0/README.md +0 -318
  222. briefloop-0.30.0/VERSION +0 -1
  223. briefloop-0.30.0/desktop/electron/package-lock.json +0 -3638
  224. briefloop-0.30.0/desktop/electron/package.json +0 -82
  225. briefloop-0.30.0/docs//347/233/256/346/240/207/351/251/261/345/212/250/347/240/224/347/251/266.md +0 -33
  226. briefloop-0.30.0/frontend/app.js +0 -1984
  227. briefloop-0.30.0/frontend/composer-options.js +0 -50
  228. briefloop-0.30.0/frontend/next-report.js +0 -55
  229. briefloop-0.30.0/frontend/quick-report.js +0 -83
  230. briefloop-0.30.0/frontend/research-goal-progress.js +0 -18
  231. briefloop-0.30.0/frontend/schedules.js +0 -33
  232. briefloop-0.30.0/frontend/search-settings.js +0 -44
  233. briefloop-0.30.0/frontend/skill-verification.js +0 -17
  234. briefloop-0.30.0/pyproject.toml +0 -51
  235. briefloop-0.30.0/scripts/check_versions.py +0 -174
  236. briefloop-0.30.0/src/briefloop/__init__.py +0 -1
  237. briefloop-0.30.0/src/briefloop/agent_prompts.py +0 -27
  238. briefloop-0.30.0/src/briefloop/analyst.py +0 -452
  239. briefloop-0.30.0/src/briefloop/backends/opencode_v2.py +0 -338
  240. briefloop-0.30.0/src/briefloop/chat_tools.py +0 -376
  241. briefloop-0.30.0/src/briefloop/cli.py +0 -340
  242. briefloop-0.30.0/src/briefloop/connectors/MATERIALS.md +0 -219
  243. briefloop-0.30.0/src/briefloop/connectors/grants.py +0 -116
  244. briefloop-0.30.0/src/briefloop/connectors/receipts.py +0 -51
  245. briefloop-0.30.0/src/briefloop/connectors/runtime_tools.py +0 -40
  246. briefloop-0.30.0/src/briefloop/connectors/tasks.py +0 -146
  247. briefloop-0.30.0/src/briefloop/document_model.py +0 -293
  248. briefloop-0.30.0/src/briefloop/draft_checks.py +0 -143
  249. briefloop-0.30.0/src/briefloop/draft_completion.py +0 -306
  250. briefloop-0.30.0/src/briefloop/fast_reports.py +0 -262
  251. briefloop-0.30.0/src/briefloop/finding_anchors.py +0 -56
  252. briefloop-0.30.0/src/briefloop/industry_data.py +0 -76
  253. briefloop-0.30.0/src/briefloop/interactive_runtime.py +0 -487
  254. briefloop-0.30.0/src/briefloop/jev_checks.py +0 -162
  255. briefloop-0.30.0/src/briefloop/learning.py +0 -666
  256. briefloop-0.30.0/src/briefloop/length.py +0 -78
  257. briefloop-0.30.0/src/briefloop/models.py +0 -777
  258. briefloop-0.30.0/src/briefloop/native_harness.py +0 -600
  259. briefloop-0.30.0/src/briefloop/native_orchestrator.py +0 -593
  260. briefloop-0.30.0/src/briefloop/native_roles.py +0 -810
  261. briefloop-0.30.0/src/briefloop/progress.py +0 -291
  262. briefloop-0.30.0/src/briefloop/prompt_assets/core.zh.md +0 -23
  263. briefloop-0.30.0/src/briefloop/prompt_assets/role.analyst.zh.md +0 -15
  264. briefloop-0.30.0/src/briefloop/prompt_assets/role.evaluator.zh.md +0 -22
  265. briefloop-0.30.0/src/briefloop/prompt_assets/role.reviewer.zh.md +0 -23
  266. briefloop-0.30.0/src/briefloop/prompt_assets/role.scout.zh.md +0 -20
  267. briefloop-0.30.0/src/briefloop/reconciliation.py +0 -206
  268. briefloop-0.30.0/src/briefloop/release.py +0 -511
  269. briefloop-0.30.0/src/briefloop/report_browsing.py +0 -120
  270. briefloop-0.30.0/src/briefloop/report_time.py +0 -140
  271. briefloop-0.30.0/src/briefloop/report_tools.py +0 -30
  272. briefloop-0.30.0/src/briefloop/research_goals.py +0 -69
  273. briefloop-0.30.0/src/briefloop/research_plan.py +0 -860
  274. briefloop-0.30.0/src/briefloop/review_capability.py +0 -118
  275. briefloop-0.30.0/src/briefloop/revision_metadata.py +0 -87
  276. briefloop-0.30.0/src/briefloop/runtime.py +0 -1733
  277. briefloop-0.30.0/src/briefloop/schedules.py +0 -195
  278. briefloop-0.30.0/src/briefloop/scout_tools.py +0 -248
  279. briefloop-0.30.0/src/briefloop/server.py +0 -985
  280. briefloop-0.30.0/src/briefloop/skill_verification.py +0 -231
  281. briefloop-0.30.0/src/briefloop/sources.py +0 -553
  282. briefloop-0.30.0/src/briefloop/static/app.js +0 -312
  283. briefloop-0.30.0/src/briefloop/static/index.html +0 -111
  284. briefloop-0.30.0/src/briefloop/static/native-engine-image-worker.mjs +0 -8
  285. briefloop-0.30.0/src/briefloop/static/native-engine-licenses.txt +0 -3346
  286. briefloop-0.30.0/src/briefloop/static/native-engine.mjs +0 -2802
  287. briefloop-0.30.0/src/briefloop/static/release-notes.json +0 -4
  288. briefloop-0.30.0/src/briefloop/static/style.css +0 -1820
  289. briefloop-0.30.0/src/briefloop/store.py +0 -1021
  290. briefloop-0.30.0/src/briefloop/task_context.py +0 -48
  291. briefloop-0.30.0/src/briefloop/task_progress.py +0 -202
  292. briefloop-0.30.0/src/briefloop/tavily.py +0 -363
  293. briefloop-0.30.0/src/briefloop/version_execution.py +0 -140
  294. briefloop-0.30.0/src/briefloop/websearch.py +0 -317
  295. briefloop-0.30.0/src/briefloop/workflow_assets/business_report/manifest.json +0 -17
  296. briefloop-0.30.0/src/briefloop/writing_guidance.py +0 -50
  297. briefloop-0.30.0/src/briefloop.egg-info/PKG-INFO +0 -358
  298. briefloop-0.30.0/src/briefloop.egg-info/SOURCES.txt +0 -1054
  299. briefloop-0.30.0/tests/frontend_app_updates.mjs +0 -103
  300. briefloop-0.30.0/tests/frontend_brand_colors.mjs +0 -31
  301. briefloop-0.30.0/tests/frontend_chat_polling.mjs +0 -81
  302. briefloop-0.30.0/tests/frontend_excel_export.mjs +0 -111
  303. briefloop-0.30.0/tests/frontend_home_v2.mjs +0 -108
  304. briefloop-0.30.0/tests/frontend_learning_authorization.mjs +0 -64
  305. briefloop-0.30.0/tests/frontend_model_catalog_refresh.mjs +0 -163
  306. briefloop-0.30.0/tests/frontend_model_label.mjs +0 -54
  307. briefloop-0.30.0/tests/frontend_native_runtime.mjs +0 -42
  308. briefloop-0.30.0/tests/frontend_next_report.mjs +0 -55
  309. briefloop-0.30.0/tests/frontend_open_brief_status.mjs +0 -141
  310. briefloop-0.30.0/tests/frontend_polling.mjs +0 -66
  311. briefloop-0.30.0/tests/frontend_provider_capabilities.mjs +0 -75
  312. briefloop-0.30.0/tests/frontend_quick_report.mjs +0 -71
  313. briefloop-0.30.0/tests/frontend_release_navigation.mjs +0 -94
  314. briefloop-0.30.0/tests/frontend_report_export.mjs +0 -123
  315. briefloop-0.30.0/tests/frontend_review_capability.mjs +0 -123
  316. briefloop-0.30.0/tests/frontend_save_barrier.mjs +0 -219
  317. briefloop-0.30.0/tests/frontend_skill_verification.mjs +0 -17
  318. briefloop-0.30.0/tests/frontend_startup_recovery.mjs +0 -99
  319. briefloop-0.30.0/tests/frontend_version_bodies.mjs +0 -78
  320. briefloop-0.30.0/tests/frontend_welcome_gate.mjs +0 -114
  321. briefloop-0.30.0/tests/frontend_writing_preferences.mjs +0 -45
  322. briefloop-0.30.0/tests/test_agent_commands.py +0 -197
  323. briefloop-0.30.0/tests/test_analyst_draft_versions.py +0 -183
  324. briefloop-0.30.0/tests/test_assessment_admission_recovery.py +0 -17
  325. briefloop-0.30.0/tests/test_assessment_followup.py +0 -139
  326. briefloop-0.30.0/tests/test_background_no_question.py +0 -33
  327. briefloop-0.30.0/tests/test_brand_assets.py +0 -45
  328. briefloop-0.30.0/tests/test_bridge_harness.py +0 -389
  329. briefloop-0.30.0/tests/test_builtin_templates.py +0 -110
  330. briefloop-0.30.0/tests/test_chat_execution.py +0 -137
  331. briefloop-0.30.0/tests/test_chat_model_selection.py +0 -84
  332. briefloop-0.30.0/tests/test_chat_stop.py +0 -70
  333. briefloop-0.30.0/tests/test_cli_doctor.py +0 -16
  334. briefloop-0.30.0/tests/test_connection_test_history.py +0 -58
  335. briefloop-0.30.0/tests/test_connector_materials.py +0 -217
  336. briefloop-0.30.0/tests/test_connector_tasks.py +0 -23
  337. briefloop-0.30.0/tests/test_delivery_consumers.py +0 -64
  338. briefloop-0.30.0/tests/test_document_workflows.py +0 -104
  339. briefloop-0.30.0/tests/test_draft_completion.py +0 -92
  340. briefloop-0.30.0/tests/test_draft_contract.py +0 -72
  341. briefloop-0.30.0/tests/test_english_reports.py +0 -121
  342. briefloop-0.30.0/tests/test_evidence.py +0 -175
  343. briefloop-0.30.0/tests/test_evidence_parse_failures.py +0 -91
  344. briefloop-0.30.0/tests/test_execution_timing.py +0 -4
  345. briefloop-0.30.0/tests/test_export_labeling.py +0 -200
  346. briefloop-0.30.0/tests/test_export_layout_swap.py +0 -59
  347. briefloop-0.30.0/tests/test_export_xlsx.py +0 -629
  348. briefloop-0.30.0/tests/test_fact_check_contract.py +0 -261
  349. briefloop-0.30.0/tests/test_fact_check_orchestration.py +0 -309
  350. briefloop-0.30.0/tests/test_fact_check_switch.py +0 -49
  351. briefloop-0.30.0/tests/test_fast_evidence.py +0 -68
  352. briefloop-0.30.0/tests/test_fast_qualifier_checks.py +0 -50
  353. briefloop-0.30.0/tests/test_figure_text.py +0 -89
  354. briefloop-0.30.0/tests/test_generation_schema_guidance.py +0 -60
  355. briefloop-0.30.0/tests/test_host_bins.py +0 -95
  356. briefloop-0.30.0/tests/test_html_export.py +0 -183
  357. briefloop-0.30.0/tests/test_html_export_states.py +0 -186
  358. briefloop-0.30.0/tests/test_industry_export.py +0 -69
  359. briefloop-0.30.0/tests/test_industry_flow.py +0 -72
  360. briefloop-0.30.0/tests/test_industry_research.py +0 -93
  361. briefloop-0.30.0/tests/test_jev_checks.py +0 -157
  362. briefloop-0.30.0/tests/test_learning_authorization.py +0 -170
  363. briefloop-0.30.0/tests/test_learning_integrity.py +0 -77
  364. briefloop-0.30.0/tests/test_length.py +0 -44
  365. briefloop-0.30.0/tests/test_length_policy.py +0 -94
  366. briefloop-0.30.0/tests/test_market_convention.py +0 -168
  367. briefloop-0.30.0/tests/test_monthly_research.py +0 -256
  368. briefloop-0.30.0/tests/test_native_analyst.py +0 -221
  369. briefloop-0.30.0/tests/test_native_evaluator.py +0 -232
  370. briefloop-0.30.0/tests/test_native_harness.py +0 -383
  371. briefloop-0.30.0/tests/test_native_learning.py +0 -90
  372. briefloop-0.30.0/tests/test_native_orchestrator.py +0 -402
  373. briefloop-0.30.0/tests/test_native_research_closeout.py +0 -38
  374. briefloop-0.30.0/tests/test_native_review_contract.py +0 -114
  375. briefloop-0.30.0/tests/test_native_scout.py +0 -343
  376. briefloop-0.30.0/tests/test_native_scout_round_paths.py +0 -69
  377. briefloop-0.30.0/tests/test_numeric_occurrence_review.py +0 -157
  378. briefloop-0.30.0/tests/test_office_cli.py +0 -699
  379. briefloop-0.30.0/tests/test_opencode_harness.py +0 -895
  380. briefloop-0.30.0/tests/test_opencode_idle.py +0 -224
  381. briefloop-0.30.0/tests/test_opencode_prompt_versions.py +0 -55
  382. briefloop-0.30.0/tests/test_opencode_search_prompt.py +0 -86
  383. briefloop-0.30.0/tests/test_opencode_v2.py +0 -303
  384. briefloop-0.30.0/tests/test_periodic_preflight.py +0 -98
  385. briefloop-0.30.0/tests/test_plain_isolation.py +0 -114
  386. briefloop-0.30.0/tests/test_previous_report.py +0 -140
  387. briefloop-0.30.0/tests/test_product_summary_consistency.py +0 -45
  388. briefloop-0.30.0/tests/test_progress_pipeline.py +0 -18
  389. briefloop-0.30.0/tests/test_public_research.py +0 -152
  390. briefloop-0.30.0/tests/test_quality_checklist_candidate.py +0 -210
  391. briefloop-0.30.0/tests/test_reader_contract.py +0 -182
  392. briefloop-0.30.0/tests/test_reader_source_export.py +0 -149
  393. briefloop-0.30.0/tests/test_reader_workflow.py +0 -109
  394. briefloop-0.30.0/tests/test_reconciliation.py +0 -183
  395. briefloop-0.30.0/tests/test_report_browsing.py +0 -141
  396. briefloop-0.30.0/tests/test_report_concurrency.py +0 -20
  397. briefloop-0.30.0/tests/test_report_deletion.py +0 -84
  398. briefloop-0.30.0/tests/test_report_time.py +0 -124
  399. briefloop-0.30.0/tests/test_research_budget.py +0 -184
  400. briefloop-0.30.0/tests/test_research_goals.py +0 -137
  401. briefloop-0.30.0/tests/test_research_handoff.py +0 -111
  402. briefloop-0.30.0/tests/test_research_plan.py +0 -300
  403. briefloop-0.30.0/tests/test_research_response_admission.py +0 -173
  404. briefloop-0.30.0/tests/test_review.py +0 -75
  405. briefloop-0.30.0/tests/test_review_learning.py +0 -47
  406. briefloop-0.30.0/tests/test_review_packet_utf8.py +0 -236
  407. briefloop-0.30.0/tests/test_review_public_metadata.py +0 -153
  408. briefloop-0.30.0/tests/test_review_snapshot.py +0 -52
  409. briefloop-0.30.0/tests/test_revision_citations.py +0 -164
  410. briefloop-0.30.0/tests/test_revision_edits.py +0 -213
  411. briefloop-0.30.0/tests/test_rich_document.py +0 -245
  412. briefloop-0.30.0/tests/test_runtime_concurrency.py +0 -6
  413. briefloop-0.30.0/tests/test_runtime_names.py +0 -40
  414. briefloop-0.30.0/tests/test_runtime_permissions.py +0 -183
  415. briefloop-0.30.0/tests/test_runtime_settlement.py +0 -51
  416. briefloop-0.30.0/tests/test_schedules.py +0 -53
  417. briefloop-0.30.0/tests/test_scout_coverage.py +0 -372
  418. briefloop-0.30.0/tests/test_scout_experiment.py +0 -54
  419. briefloop-0.30.0/tests/test_semantic_experiment.py +0 -348
  420. briefloop-0.30.0/tests/test_semantic_governance.py +0 -199
  421. briefloop-0.30.0/tests/test_server_boundary.py +0 -223
  422. briefloop-0.30.0/tests/test_skill_verification.py +0 -161
  423. briefloop-0.30.0/tests/test_source_ingestion.py +0 -218
  424. briefloop-0.30.0/tests/test_sources_provenance.py +0 -350
  425. briefloop-0.30.0/tests/test_store_sqlite_benchmark.py +0 -110
  426. briefloop-0.30.0/tests/test_store_wal.py +0 -67
  427. briefloop-0.30.0/tests/test_table_citation_advisory.py +0 -102
  428. briefloop-0.30.0/tests/test_task_context.py +0 -120
  429. briefloop-0.30.0/tests/test_task_labels.py +0 -50
  430. briefloop-0.30.0/tests/test_task_notify.py +0 -75
  431. briefloop-0.30.0/tests/test_task_progress.py +0 -60
  432. briefloop-0.30.0/tests/test_tavily.py +0 -108
  433. briefloop-0.30.0/tests/test_template_conversion.py +0 -339
  434. briefloop-0.30.0/tests/test_template_saved_state.py +0 -54
  435. briefloop-0.30.0/tests/test_value_annotations.py +0 -105
  436. briefloop-0.30.0/tests/test_value_benchmark.py +0 -221
  437. briefloop-0.30.0/tests/test_value_evaluator_route.py +0 -90
  438. briefloop-0.30.0/tests/test_version_execution.py +0 -181
  439. briefloop-0.30.0/tests/test_websearch_singleflight.py +0 -56
  440. briefloop-0.30.0/tests/test_writer_context.py +0 -132
  441. briefloop-0.30.0/tests/test_writer_input.py +0 -443
  442. briefloop-0.30.0/tests/test_xlsx_preview.py +0 -128
  443. {briefloop-0.30.0 → briefloop-0.31.3}/.gitattributes +0 -0
  444. {briefloop-0.30.0 → briefloop-0.31.3}/CONTRIBUTING.md +0 -0
  445. {briefloop-0.30.0 → briefloop-0.31.3}/KNOWN_ISSUES.md +0 -0
  446. {briefloop-0.30.0 → briefloop-0.31.3}/LICENSE +0 -0
  447. {briefloop-0.30.0 → briefloop-0.31.3}/MANIFEST.in +0 -0
  448. {briefloop-0.30.0 → briefloop-0.31.3}/SECURITY.md +0 -0
  449. {briefloop-0.30.0 → briefloop-0.31.3}/THIRD_PARTY_NOTICES.md +0 -0
  450. {briefloop-0.30.0 → briefloop-0.31.3}/bootstrap.py +0 -0
  451. {briefloop-0.30.0 → briefloop-0.31.3}/docs/OpenCode/347/211/210/346/234/254/345/205/274/345/256/271.md" +0 -0
  452. {briefloop-0.30.0 → briefloop-0.31.3}/docs/WorkBuddy/345/244/226/351/203/250/345/205/245/345/217/243.md" +0 -0
  453. {briefloop-0.30.0 → briefloop-0.31.3}/docs/architecture.md +0 -0
  454. {briefloop-0.30.0 → briefloop-0.31.3}/docs/article-materials.md +0 -0
  455. {briefloop-0.30.0 → briefloop-0.31.3}/docs/codex-history-isolation.md +0 -0
  456. {briefloop-0.30.0 → briefloop-0.31.3}/docs/compose/spec/home-v2.md +0 -0
  457. {briefloop-0.30.0 → briefloop-0.31.3}/docs/design-v3.1-validation.md +0 -0
  458. {briefloop-0.30.0 → briefloop-0.31.3}/docs/dmg-density-validation.md +0 -0
  459. {briefloop-0.30.0 → briefloop-0.31.3}/docs/draft-first.md +0 -0
  460. {briefloop-0.30.0 → briefloop-0.31.3}/docs/jev-precheck.md +0 -0
  461. {briefloop-0.30.0 → briefloop-0.31.3}/docs/native-integration.md +0 -0
  462. {briefloop-0.30.0 → briefloop-0.31.3}/docs/quality-reading-context.md +0 -0
  463. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.26.0.md +0 -0
  464. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.26.1.md +0 -0
  465. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.26.2.md +0 -0
  466. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.26.3.md +0 -0
  467. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.26.4.md +0 -0
  468. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.27.0.md +0 -0
  469. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.28.0.md +0 -0
  470. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.28.1.md +0 -0
  471. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.28.2.md +0 -0
  472. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.28.3.md +0 -0
  473. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.28.4.md +0 -0
  474. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.29.0.md +0 -0
  475. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.29.1.md +0 -0
  476. {briefloop-0.30.0 → briefloop-0.31.3}/docs/release-0.30.0.md +0 -0
  477. {briefloop-0.30.0 → briefloop-0.31.3}/docs/report-length.md +0 -0
  478. {briefloop-0.30.0 → briefloop-0.31.3}/docs/report-time-window.md +0 -0
  479. {briefloop-0.30.0 → briefloop-0.31.3}/docs/report-version-information.md +0 -0
  480. {briefloop-0.30.0 → briefloop-0.31.3}/docs/research-context.md +0 -0
  481. {briefloop-0.30.0 → briefloop-0.31.3}/docs/research-handoff.md +0 -0
  482. {briefloop-0.30.0 → briefloop-0.31.3}/docs/revision-learning.md +0 -0
  483. {briefloop-0.30.0 → briefloop-0.31.3}/docs/source-library.md +0 -0
  484. {briefloop-0.30.0 → briefloop-0.31.3}/docs/sqlite-benchmark.md +0 -0
  485. {briefloop-0.30.0 → briefloop-0.31.3}/docs/technical-report-0.21.0/evidence-index.md +0 -0
  486. {briefloop-0.30.0 → briefloop-0.31.3}/docs/technical-report-0.21.0/technical-report.md +0 -0
  487. {briefloop-0.30.0 → briefloop-0.31.3}/docs/windows.md +0 -0
  488. {briefloop-0.30.0 → briefloop-0.31.3}/docs/writer-input.md +0 -0
  489. {briefloop-0.30.0 → briefloop-0.31.3}/docs/writing-agreements.md +0 -0
  490. {briefloop-0.30.0 → briefloop-0.31.3}/docs//344/272/247/345/223/201/345/256/232/344/275/215/344/270/216/351/252/214/350/257/201.md" +0 -0
  491. {briefloop-0.30.0 → briefloop-0.31.3}/docs//344/274/232/350/256/256/347/272/252/350/246/201.md" +0 -0
  492. {briefloop-0.30.0 → briefloop-0.31.3}/docs//344/275/277/347/224/250/346/214/207/345/215/227.md" +0 -0
  493. {briefloop-0.30.0 → briefloop-0.31.3}/docs//345/206/205/347/275/256/345/274/225/346/223/216.md" +0 -0
  494. {briefloop-0.30.0 → briefloop-0.31.3}/docs//345/215/207/347/272/247/350/257/264/346/230/216.md" +0 -0
  495. {briefloop-0.30.0 → briefloop-0.31.3}/docs//345/233/276/350/241/250/344/270/216Excel.md" +0 -0
  496. {briefloop-0.30.0 → briefloop-0.31.3}/docs//345/244/232Runtime/344/270/216/346/250/241/345/236/213.md" +0 -0
  497. {briefloop-0.30.0 → briefloop-0.31.3}/docs//345/244/232/346/250/241/346/200/201/346/235/245/346/272/220.md" +0 -0
  498. {briefloop-0.30.0 → briefloop-0.31.3}/docs//345/256/232/346/227/266/346/212/245/345/221/212.md" +0 -0
  499. {briefloop-0.30.0 → briefloop-0.31.3}/docs//345/257/271/350/257/235/345/256/277/344/270/273/345/210/207/346/215/242.md" +0 -0
  500. {briefloop-0.30.0 → briefloop-0.31.3}/docs//346/212/245/345/221/212/347/274/226/350/276/221/344/270/216/346/250/241/346/235/277.md" +0 -0
  501. {briefloop-0.30.0 → briefloop-0.31.3}/docs//346/241/214/351/235/242/345/256/211/350/243/205/344/270/216/346/233/264/346/226/260.md" +0 -0
  502. {briefloop-0.30.0 → briefloop-0.31.3}/docs//346/267/261/345/272/246/347/240/224/347/251/266/344/270/216/344/272/213/345/256/236/346/240/270/346/237/245.md" +0 -0
  503. {briefloop-0.30.0 → briefloop-0.31.3}/docs//347/211/210/346/234/254/344/270/200/350/207/264/346/200/247/346/243/200/346/237/245.md" +0 -0
  504. {briefloop-0.30.0 → briefloop-0.31.3}/docs//350/241/214/344/270/232/346/212/245/345/221/212.md" +0 -0
  505. {briefloop-0.30.0 → briefloop-0.31.3}/docs//350/257/201/345/210/270/347/240/224/347/251/266.md" +0 -0
  506. {briefloop-0.30.0 → briefloop-0.31.3}/docs//350/257/201/346/215/256/344/270/216/347/273/223/350/256/272/350/277/275/346/272/257.md" +0 -0
  507. {briefloop-0.30.0 → briefloop-0.31.3}/docs//350/277/220/350/241/214/346/227/266/351/200/211/346/213/251/344/270/216/346/243/200/346/265/213.md" +0 -0
  508. {briefloop-0.30.0 → briefloop-0.31.3}/docs//351/252/214/346/224/266/350/256/260/345/275/225.md" +0 -0
  509. {briefloop-0.30.0 → briefloop-0.31.3}/examples/internal-weekly-report/README.md +0 -0
  510. {briefloop-0.30.0 → briefloop-0.31.3}/examples/internal-weekly-report/report.md +0 -0
  511. {briefloop-0.30.0 → briefloop-0.31.3}/examples/internal-weekly-report/source.txt +0 -0
  512. {briefloop-0.30.0 → briefloop-0.31.3}/examples/meeting-minutes/transcript.txt +0 -0
  513. {briefloop-0.30.0 → briefloop-0.31.3}/examples/stock-research/earnings-event.txt +0 -0
  514. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/anchored-popover.js +0 -0
  515. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/api.js +0 -0
  516. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/app-updates.js +0 -0
  517. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/article-media.js +0 -0
  518. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/assessment-checks.js +0 -0
  519. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/assessment-panel.js +0 -0
  520. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/citation-evidence.js +0 -0
  521. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/citation-sources.js +0 -0
  522. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/clipboard.js +0 -0
  523. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/compact-report-controls.js +0 -0
  524. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/connectors.js +0 -0
  525. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/delivery.js +0 -0
  526. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/dom.js +0 -0
  527. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/evidence-review-dialogs.js +0 -0
  528. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/excel-export.js +0 -0
  529. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/fact-check-availability.js +0 -0
  530. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/fact-check-grants.js +0 -0
  531. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/feedback-list.js +0 -0
  532. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/home.js +0 -0
  533. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/jev-checks.js +0 -0
  534. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/job-presentation.js +0 -0
  535. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/learning-retry.js +0 -0
  536. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/length-controls.js +0 -0
  537. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/market-convention.js +0 -0
  538. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/market-decorations.js +0 -0
  539. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/mcp-selection.js +0 -0
  540. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/model-catalog.js +0 -0
  541. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/native-requests.js +0 -0
  542. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/next-report-chat.js +0 -0
  543. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/notifications.js +0 -0
  544. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/office-tools.js +0 -0
  545. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/polling.js +0 -0
  546. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/previous-report.js +0 -0
  547. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/provider-capabilities.js +0 -0
  548. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/readers.js +0 -0
  549. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/reasoning-controls.js +0 -0
  550. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/report-browsing.js +0 -0
  551. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/report-export.js +0 -0
  552. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/report-feedback.js +0 -0
  553. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/report-form-defaults.js +0 -0
  554. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/report-language.js +0 -0
  555. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/report-panels.js +0 -0
  556. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/report-sources.js +0 -0
  557. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/report-start.js +0 -0
  558. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/report-version-info.js +0 -0
  559. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/research-budget.js +0 -0
  560. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/research-process.js +0 -0
  561. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/review-controls.js +0 -0
  562. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/review-coverage.js +0 -0
  563. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/review-results.js +0 -0
  564. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/review-status.js +0 -0
  565. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/revision-questions.js +0 -0
  566. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/rich-document.js +0 -0
  567. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/runtime-cards.js +0 -0
  568. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/runtime-model-picker.js +0 -0
  569. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/runtime-permission-modes.js +0 -0
  570. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/runtime-permission-panel.js +0 -0
  571. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/runtime-picker-bindings.js +0 -0
  572. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/session-budget.js +0 -0
  573. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/source-library-controls.js +0 -0
  574. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/source-library-search.js +0 -0
  575. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/source-upload.js +0 -0
  576. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/source-viewer.js +0 -0
  577. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/sources-page.js +0 -0
  578. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/task-progress.js +0 -0
  579. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/template-output.js +0 -0
  580. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/templates.js +0 -0
  581. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/time.js +0 -0
  582. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/uploads.js +0 -0
  583. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/version-diff.js +0 -0
  584. {briefloop-0.30.0 → briefloop-0.31.3}/frontend/welcome.js +0 -0
  585. {briefloop-0.30.0 → briefloop-0.31.3}/package-lock.json +0 -0
  586. {briefloop-0.30.0 → briefloop-0.31.3}/package.json +0 -0
  587. {briefloop-0.30.0 → briefloop-0.31.3}/probes/mcp_m0/README.md +0 -0
  588. {briefloop-0.30.0 → briefloop-0.31.3}/probes/mcp_m0/probe.py +0 -0
  589. {briefloop-0.30.0 → briefloop-0.31.3}/probes/mcp_m0/requirements.txt +0 -0
  590. {briefloop-0.30.0 → briefloop-0.31.3}/probes/mcp_m0/server.py +0 -0
  591. {briefloop-0.30.0 → briefloop-0.31.3}/runtime-bridge/README.md +0 -0
  592. {briefloop-0.30.0 → briefloop-0.31.3}/runtime-bridge/bridge.test.mjs +0 -0
  593. {briefloop-0.30.0 → briefloop-0.31.3}/runtime-bridge/build.mjs +0 -0
  594. {briefloop-0.30.0 → briefloop-0.31.3}/runtime-bridge/catalog.json +0 -0
  595. {briefloop-0.30.0 → briefloop-0.31.3}/runtime-bridge/claude.ts +0 -0
  596. {briefloop-0.30.0 → briefloop-0.31.3}/runtime-bridge/main.ts +0 -0
  597. {briefloop-0.30.0 → briefloop-0.31.3}/runtime-bridge/permission-catalog.ts +0 -0
  598. {briefloop-0.30.0 → briefloop-0.31.3}/runtime-bridge/pi.ts +0 -0
  599. {briefloop-0.30.0 → briefloop-0.31.3}/runtime-bridge/reasoning.ts +0 -0
  600. {briefloop-0.30.0 → briefloop-0.31.3}/runtime-bridge/user-input.ts +0 -0
  601. {briefloop-0.30.0 → briefloop-0.31.3}/runtime-bridge/windows-command.ts +0 -0
  602. {briefloop-0.30.0 → briefloop-0.31.3}/runtime-bridge/zcode.ts +0 -0
  603. {briefloop-0.30.0 → briefloop-0.31.3}/scripts/build_frontend.mjs +0 -0
  604. {briefloop-0.30.0 → briefloop-0.31.3}/scripts/build_frontend_licenses.mjs +0 -0
  605. {briefloop-0.30.0 → briefloop-0.31.3}/scripts/sync_versions.py +0 -0
  606. {briefloop-0.30.0 → briefloop-0.31.3}/scripts/test_frontend.mjs +0 -0
  607. {briefloop-0.30.0 → briefloop-0.31.3}/setup.cfg +0 -0
  608. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/__main__.py +0 -0
  609. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/_entrypoint.py +0 -0
  610. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/agent_commands.py +0 -0
  611. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/analyst_drafts.py +0 -0
  612. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/app_server.py +0 -0
  613. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/article_materials.py +0 -0
  614. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/audit_bundle.py +0 -0
  615. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/backends/__init__.py +0 -0
  616. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/backends/opencode_server.py +0 -0
  617. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/bocha.py +0 -0
  618. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/bridge_harness.py +0 -0
  619. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/chat_dispatch.py +0 -0
  620. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/chat_execution.py +0 -0
  621. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/chat_store.py +0 -0
  622. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/codex_diagnostics.py +0 -0
  623. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/codex_home.py +0 -0
  624. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/company_context.py +0 -0
  625. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/comparison_contract.py +0 -0
  626. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/conflicts.py +0 -0
  627. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/connectors/README.md +0 -0
  628. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/connectors/__init__.py +0 -0
  629. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/connectors/config.py +0 -0
  630. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/connectors/materials.py +0 -0
  631. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/connectors/runtime.py +0 -0
  632. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/connectors/service.py +0 -0
  633. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/connectors/stdio_supervisor.py +0 -0
  634. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/connectors/task_client.py +0 -0
  635. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/connectors/transport.py +0 -0
  636. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/connectors/windows_acl.py +0 -0
  637. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/default_fonts.py +0 -0
  638. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/deliverable_spec.py +0 -0
  639. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/delivery_checks.py +0 -0
  640. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/delivery_state.py +0 -0
  641. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/demo.py +0 -0
  642. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/document_export.py +0 -0
  643. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/document_workflows.py +0 -0
  644. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/docx_text.py +0 -0
  645. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/duckduckgo.py +0 -0
  646. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/evaluation_reading.py +0 -0
  647. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/evidence.py +0 -0
  648. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/evidence_context.py +0 -0
  649. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/execution_records.py +0 -0
  650. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/execution_timing.py +0 -0
  651. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/export_jobs.py +0 -0
  652. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/export_labeling.py +0 -0
  653. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/exports.py +0 -0
  654. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/external_client.py +0 -0
  655. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/external_mcp.py +0 -0
  656. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/external_requests.py +0 -0
  657. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/fact_check.py +0 -0
  658. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/fast_mode.py +0 -0
  659. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/fast_research.py +0 -0
  660. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/feedback_view.py +0 -0
  661. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/figure_support.py +0 -0
  662. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/figure_text.py +0 -0
  663. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/figures.py +0 -0
  664. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/harness.py +0 -0
  665. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/host_bins.py +0 -0
  666. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/html_export.py +0 -0
  667. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/html_export_assets/report.css +0 -0
  668. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/html_export_assets/report.js +0 -0
  669. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/industry_export.py +0 -0
  670. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/jev.py +0 -0
  671. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/learning_budget.py +0 -0
  672. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/market_convention.py +0 -0
  673. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/media.py +0 -0
  674. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/model_budget.py +0 -0
  675. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/native_engine.py +0 -0
  676. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/native_providers.py +0 -0
  677. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/next_report.py +0 -0
  678. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/notifications.py +0 -0
  679. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/office_cli.py +0 -0
  680. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/ooxml_order.py +0 -0
  681. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/opencode_harness.py +0 -0
  682. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/opencode_version.py +0 -0
  683. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/packet_views.py +0 -0
  684. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/parent_watch.py +0 -0
  685. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/plain_isolation.py +0 -0
  686. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/platform_support.py +0 -0
  687. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/previous_report.py +0 -0
  688. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/process_host.py +0 -0
  689. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/projections.py +0 -0
  690. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/prompt_assets/mode.background.zh.md +0 -0
  691. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/prompt_assets/mode.interactive.zh.md +0 -0
  692. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/prompt_assets/role.chat.zh.md +0 -0
  693. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/prompt_assets/role.fact_checker.zh.md +0 -0
  694. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/prompt_assets/role.maintainer.zh.md +0 -0
  695. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/prompt_assets/role.orchestrator.zh.md +0 -0
  696. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/prompt_assets/role.proposer.zh.md +0 -0
  697. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/prompt_assets/role.quick_writer.zh.md +0 -0
  698. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/provider_catalog.py +0 -0
  699. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/readers.py +0 -0
  700. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/report_profiles.py +0 -0
  701. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/research_budget.py +0 -0
  702. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/research_handoff.py +0 -0
  703. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/research_reading.py +0 -0
  704. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/review.py +0 -0
  705. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/review_learning.py +0 -0
  706. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/revision_edits.py +0 -0
  707. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/revision_policy.py +0 -0
  708. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/rpc_writer.py +0 -0
  709. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/runtime_bridge.py +0 -0
  710. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/runtime_permissions.py +0 -0
  711. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/runtime_reasoning.py +0 -0
  712. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/scout.py +0 -0
  713. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/scout_coverage.py +0 -0
  714. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/scout_evidence.py +0 -0
  715. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/search_credentials.py +0 -0
  716. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/search_policy.py +0 -0
  717. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/skill_assets/briefloop-external/SKILL.md +0 -0
  718. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/skill_assets/duckduckgo/SKILL.md +0 -0
  719. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/skill_assets/multi-search/SKILL.md +0 -0
  720. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/skill_assets/tavily/SKILL.md +0 -0
  721. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/skills.py +0 -0
  722. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/software_release_notes.py +0 -0
  723. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/software_version.py +0 -0
  724. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/source_context.py +0 -0
  725. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/source_extraction.py +0 -0
  726. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/source_ingestion.py +0 -0
  727. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/source_library_search.py +0 -0
  728. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/source_lifecycle.py +0 -0
  729. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/source_search.py +0 -0
  730. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/source_updates.py +0 -0
  731. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/frontend-licenses.txt +0 -0
  732. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/native-engine-models.json +0 -0
  733. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/native-engine-photon.wasm +0 -0
  734. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-aider.png +0 -0
  735. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-amr.svg +0 -0
  736. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-antigravity.svg +0 -0
  737. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-bridge.LICENSE.txt +0 -0
  738. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-bridge.NOTICE.txt +0 -0
  739. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-bridge.mjs +0 -0
  740. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-briefloop.svg +0 -0
  741. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-claude.svg +0 -0
  742. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-codebuddy.svg +0 -0
  743. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-codex.svg +0 -0
  744. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-copilot.svg +0 -0
  745. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-cursor-agent.svg +0 -0
  746. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-deepseek.svg +0 -0
  747. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-devin.png +0 -0
  748. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-grok-build.svg +0 -0
  749. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-hermes.svg +0 -0
  750. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-kilo.svg +0 -0
  751. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-kimi.svg +0 -0
  752. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-kiro.svg +0 -0
  753. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-mimo.svg +0 -0
  754. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-opencode.svg +0 -0
  755. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-pi.svg +0 -0
  756. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-qoder.svg +0 -0
  757. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-qwen.svg +0 -0
  758. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-reasoning.json +0 -0
  759. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-reasonix.svg +0 -0
  760. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-trae-cli.png +0 -0
  761. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/runtime-vibe.svg +0 -0
  762. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/static/tokens.css +0 -0
  763. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/task_labels.py +0 -0
  764. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/task_notify.py +0 -0
  765. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/academic-paper-zh-t1.docx +0 -0
  766. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/academic-paper-zh-t1.spec.json +0 -0
  767. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/academic-paper-zh-t2.docx +0 -0
  768. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/academic-paper-zh-t2.spec.json +0 -0
  769. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/academic-paper-zh-t3.docx +0 -0
  770. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/academic-paper-zh-t3.spec.json +0 -0
  771. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/academic-paper-zh-t4.docx +0 -0
  772. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/academic-paper-zh-t4.spec.json +0 -0
  773. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/academic-paper-zh-t5.docx +0 -0
  774. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/academic-paper-zh-t5.spec.json +0 -0
  775. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/annual-report-zh-t1.docx +0 -0
  776. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/annual-report-zh-t1.spec.json +0 -0
  777. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/annual-report-zh-t2.docx +0 -0
  778. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/annual-report-zh-t2.spec.json +0 -0
  779. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/annual-report-zh-t3.docx +0 -0
  780. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/annual-report-zh-t3.spec.json +0 -0
  781. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/annual-report-zh-t4.docx +0 -0
  782. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/annual-report-zh-t4.spec.json +0 -0
  783. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/annual-report-zh-t5.docx +0 -0
  784. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/annual-report-zh-t5.spec.json +0 -0
  785. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/business-report-zh-t1.docx +0 -0
  786. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/business-report-zh-t1.spec.json +0 -0
  787. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/business-report-zh-t2.docx +0 -0
  788. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/business-report-zh-t2.spec.json +0 -0
  789. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/business-report-zh-t3.docx +0 -0
  790. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/business-report-zh-t3.spec.json +0 -0
  791. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/business-report-zh-t4.docx +0 -0
  792. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/business-report-zh-t4.spec.json +0 -0
  793. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/business-report-zh-t5.docx +0 -0
  794. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/business-report-zh-t5.spec.json +0 -0
  795. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-en-t1.docx +0 -0
  796. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-en-t1.spec.json +0 -0
  797. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-en-t2.docx +0 -0
  798. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-en-t2.spec.json +0 -0
  799. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-en-t3.docx +0 -0
  800. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-en-t3.spec.json +0 -0
  801. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-en-t4.docx +0 -0
  802. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-en-t4.spec.json +0 -0
  803. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-en-t5.docx +0 -0
  804. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-en-t5.spec.json +0 -0
  805. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-zh-t1.docx +0 -0
  806. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-zh-t1.spec.json +0 -0
  807. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-zh-t2.docx +0 -0
  808. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-zh-t2.spec.json +0 -0
  809. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-zh-t3.docx +0 -0
  810. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-zh-t3.spec.json +0 -0
  811. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-zh-t4.docx +0 -0
  812. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-zh-t4.spec.json +0 -0
  813. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-zh-t5.docx +0 -0
  814. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/general-report-zh-t5.spec.json +0 -0
  815. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/government-doc-zh-t4.docx +0 -0
  816. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/government-doc-zh-t4.spec.json +0 -0
  817. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/legal-contract-zh-t1.docx +0 -0
  818. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/legal-contract-zh-t1.spec.json +0 -0
  819. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/legal-contract-zh-t2.docx +0 -0
  820. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/legal-contract-zh-t2.spec.json +0 -0
  821. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/legal-contract-zh-t3.docx +0 -0
  822. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/legal-contract-zh-t3.spec.json +0 -0
  823. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/legal-contract-zh-t4.docx +0 -0
  824. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/legal-contract-zh-t4.spec.json +0 -0
  825. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/legal-contract-zh-t5.docx +0 -0
  826. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/legal-contract-zh-t5.spec.json +0 -0
  827. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/meeting-minutes-zh-t1.docx +0 -0
  828. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/meeting-minutes-zh-t1.spec.json +0 -0
  829. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/meeting-minutes-zh-t2.docx +0 -0
  830. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/meeting-minutes-zh-t2.spec.json +0 -0
  831. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/meeting-minutes-zh-t3.docx +0 -0
  832. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/meeting-minutes-zh-t3.spec.json +0 -0
  833. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/meeting-minutes-zh-t4.docx +0 -0
  834. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/meeting-minutes-zh-t4.spec.json +0 -0
  835. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/meeting-minutes-zh-t5.docx +0 -0
  836. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/meeting-minutes-zh-t5.spec.json +0 -0
  837. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-en-t1.docx +0 -0
  838. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-en-t1.spec.json +0 -0
  839. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-en-t2.docx +0 -0
  840. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-en-t2.spec.json +0 -0
  841. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-en-t3.docx +0 -0
  842. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-en-t3.spec.json +0 -0
  843. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-en-t4.docx +0 -0
  844. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-en-t4.spec.json +0 -0
  845. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-en-t5.docx +0 -0
  846. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-en-t5.spec.json +0 -0
  847. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-zh-t1.docx +0 -0
  848. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-zh-t1.spec.json +0 -0
  849. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-zh-t2.docx +0 -0
  850. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-zh-t2.spec.json +0 -0
  851. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-zh-t3.docx +0 -0
  852. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-zh-t3.spec.json +0 -0
  853. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-zh-t4.docx +0 -0
  854. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-zh-t4.spec.json +0 -0
  855. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-zh-t5.docx +0 -0
  856. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_assets/stock-research-zh-t5.spec.json +0 -0
  857. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/template_conversion.py +0 -0
  858. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/templates.py +0 -0
  859. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/user_input.py +0 -0
  860. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/windows_process.py +0 -0
  861. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/word_import.py +0 -0
  862. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workbook_figures.py +0 -0
  863. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/business_report/evaluation.md +0 -0
  864. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/business_report/methods/decision_memo.md +0 -0
  865. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/business_report/methods/industry_periodic.md +0 -0
  866. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/business_report/methods/work_progress.md +0 -0
  867. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/business_report/planning.md +0 -0
  868. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/business_report/writing.md +0 -0
  869. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/general_report/evaluation.md +0 -0
  870. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/general_report/manifest.json +0 -0
  871. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/general_report/planning.md +0 -0
  872. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/general_report/writing.md +0 -0
  873. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/meeting_minutes/evaluation.md +0 -0
  874. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/meeting_minutes/manifest.json +0 -0
  875. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/meeting_minutes/planning.md +0 -0
  876. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/meeting_minutes/writing.md +0 -0
  877. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/stock_research/evaluation.md +0 -0
  878. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/stock_research/manifest.json +0 -0
  879. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/stock_research/methods/company_research.md +0 -0
  880. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/stock_research/methods/event_commentary.md +0 -0
  881. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/stock_research/methods/industry_tracking.md +0 -0
  882. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/stock_research/planning.md +0 -0
  883. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workflow_assets/stock_research/writing.md +0 -0
  884. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workspace_profile.py +0 -0
  885. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/workspaces.py +0 -0
  886. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/writer_assembly.py +0 -0
  887. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/writer_input.py +0 -0
  888. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/writing_agreements.py +0 -0
  889. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/xlsx_export.py +0 -0
  890. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop/zhipu.py +0 -0
  891. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop.egg-info/dependency_links.txt +0 -0
  892. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop.egg-info/entry_points.txt +0 -0
  893. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop.egg-info/requires.txt +0 -0
  894. {briefloop-0.30.0 → briefloop-0.31.3}/src/briefloop.egg-info/top_level.txt +0 -0
  895. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/__init__.py +0 -0
  896. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/__main__.py +0 -0
  897. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/_licenses/LICENSE +0 -0
  898. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/_licenses/NOTICE.md +0 -0
  899. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/_licenses/third_party/acorn/LICENSE +0 -0
  900. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/_licenses/third_party/acorn/NOTICE.md +0 -0
  901. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/_licenses/third_party/officeqa/LICENSE-APACHE +0 -0
  902. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/_licenses/third_party/officeqa/NOTICE +0 -0
  903. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/alfworld/__init__.py +0 -0
  904. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/alfworld/act.sh +0 -0
  905. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/alfworld/rollout.py +0 -0
  906. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/alfworld/step.py +0 -0
  907. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/benchmarks/__init__.py +0 -0
  908. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/benchmarks/alfworld.py +0 -0
  909. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/benchmarks/livemath.py +0 -0
  910. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/benchmarks/sealqa.py +0 -0
  911. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/benchmarks/spreadsheet.py +0 -0
  912. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/cli.py +0 -0
  913. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/codex_identity.py +0 -0
  914. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/engine.py +0 -0
  915. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/feedback_loop.py +0 -0
  916. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/isolated/__init__.py +0 -0
  917. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/isolated/audit.py +0 -0
  918. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/isolated/runtime.py +0 -0
  919. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/isolated/tools_server.py +0 -0
  920. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/jsonl.py +0 -0
  921. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/k4_lock.py +0 -0
  922. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/livemath/__init__.py +0 -0
  923. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/livemath/loop.py +0 -0
  924. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/livemath/rollout.py +0 -0
  925. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/native_agents.py +0 -0
  926. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/officeqa/__init__.py +0 -0
  927. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/officeqa/dataset.py +0 -0
  928. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/officeqa/fetch.py +0 -0
  929. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/officeqa/loop.py +0 -0
  930. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/officeqa/retrieval.py +0 -0
  931. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/officeqa/reward.py +0 -0
  932. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/officeqa/rollout.py +0 -0
  933. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/officeqa/scoring.py +0 -0
  934. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/officeqa/wiki_agents.py +0 -0
  935. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/paper_alignment/__init__.py +0 -0
  936. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/paper_alignment/contracts.py +0 -0
  937. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/paper_alignment/evidence.py +0 -0
  938. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/product.py +0 -0
  939. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/product_cli.py +0 -0
  940. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/product_install.py +0 -0
  941. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/product_views.py +0 -0
  942. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/alfworld/id_split/split_manifest.json +0 -0
  943. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/alfworld/id_split/test.json +0 -0
  944. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/alfworld/id_split/train.json +0 -0
  945. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/alfworld/id_split/val.json +0 -0
  946. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/alfworld/wiki/SKILL-s0.md +0 -0
  947. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/alfworld/wiki/index.md +0 -0
  948. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/alfworld/wiki/logs.md +0 -0
  949. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/alfworld/wiki/prompts/maintainer.md +0 -0
  950. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/alfworld/wiki/prompts/proposer.md +0 -0
  951. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/alfworld/wiki/skill-impact.md +0 -0
  952. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/isolated/model-catalog-direct.json +0 -0
  953. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/id_split/split_manifest.json +0 -0
  954. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/id_split/test.json +0 -0
  955. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/id_split/train.json +0 -0
  956. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/id_split/val.json +0 -0
  957. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/id_split-v2/split_manifest.json +0 -0
  958. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/id_split-v2/test.json +0 -0
  959. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/id_split-v2/train.json +0 -0
  960. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/id_split-v2/val.json +0 -0
  961. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/protocol.json +0 -0
  962. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/wiki/SKILL-s0.md +0 -0
  963. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/wiki/index.md +0 -0
  964. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/wiki/logs.md +0 -0
  965. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/wiki/prompts/maintainer.md +0 -0
  966. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/wiki/prompts/proposer.md +0 -0
  967. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/livemath/wiki/skill-impact.md +0 -0
  968. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/officeqa/id_split/split_manifest.json +0 -0
  969. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/officeqa/id_split/test.json +0 -0
  970. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/officeqa/id_split/train.json +0 -0
  971. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/officeqa/id_split/val.json +0 -0
  972. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/officeqa/protocol.json +0 -0
  973. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/officeqa/wiki/SKILL-s0.md +0 -0
  974. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/officeqa/wiki/index.md +0 -0
  975. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/officeqa/wiki/logs.md +0 -0
  976. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/officeqa/wiki/prompts/maintainer.md +0 -0
  977. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/officeqa/wiki/prompts/proposer.md +0 -0
  978. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/officeqa/wiki/skill-impact.md +0 -0
  979. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/paper_alignment/README.md +0 -0
  980. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/paper_alignment/prompts/maintainer.paper.md +0 -0
  981. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/paper_alignment/prompts/officeqa.paper.md +0 -0
  982. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/paper_alignment/prompts/proposer.paper.md +0 -0
  983. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/paper_alignment/prompts/spreadsheet.paper.md +0 -0
  984. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/agents/claude-code/wikiskill-executor.md +0 -0
  985. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/agents/claude-code/wikiskill-maintainer.md +0 -0
  986. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/agents/claude-code/wikiskill-proposer.md +0 -0
  987. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/agents/codex/wikiskill-executor.toml +0 -0
  988. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/agents/codex/wikiskill-maintainer.toml +0 -0
  989. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/agents/codex/wikiskill-proposer.toml +0 -0
  990. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/entry-skill/SKILL.md +0 -0
  991. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/entry-skill/agents/openai.yaml +0 -0
  992. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/entry-skill/references/native-subagents.md +0 -0
  993. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/entry-skill/references/workflow.md +0 -0
  994. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/roles/executor.md +0 -0
  995. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/roles/maintainer.md +0 -0
  996. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/product/roles/proposer.md +0 -0
  997. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/final-20260907/manifest.json +0 -0
  998. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/final-20260907/math-episodes.json +0 -0
  999. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/final-20260907/sealqa-pairs.json +0 -0
  1000. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/final-20260907/spreadsheet-SKILL.md +0 -0
  1001. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/final-20260907/spreadsheet-pairs.json +0 -0
  1002. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/final-20260907/summary.json +0 -0
  1003. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/repeatability-20260908/example-provenance.json +0 -0
  1004. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/repeatability-20260908/installed-smoke.json +0 -0
  1005. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/repeatability-20260908/manifest.json +0 -0
  1006. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/repeatability-20260908/repeat1-pairs.json +0 -0
  1007. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/repeatability-20260908/repeat2-pairs.json +0 -0
  1008. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/repeatability-20260908/repeat3-pairs.json +0 -0
  1009. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/repeatability-20260908/summary.json +0 -0
  1010. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/repeatability-20260908/wiki-deliver-the-recalculated-workbook.md +0 -0
  1011. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/skills/livemath/55.md +0 -0
  1012. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/skills/livemath/luna.md +0 -0
  1013. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/skills/officeqa/55.md +0 -0
  1014. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/skills/officeqa/terra.md +0 -0
  1015. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/skills/officeqa-retrieval/55.md +0 -0
  1016. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/skills/officeqa-retrieval/sol.md +0 -0
  1017. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/skills/sealqa/sol.md +0 -0
  1018. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/skills/spreadsheet/55.md +0 -0
  1019. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/skills/spreadsheet/sol.md +0 -0
  1020. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/snapshot.json +0 -0
  1021. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/snapshot.sha256 +0 -0
  1022. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260906/livemath-luna-pairs.json +0 -0
  1023. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260906/livemath-luna-skill.md +0 -0
  1024. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260906/manifest.json +0 -0
  1025. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260906/officeqa-luna-skill.md +0 -0
  1026. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260906/officeqa-sol-skill.md +0 -0
  1027. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260906/officeqa-sol-v2-pairs.json +0 -0
  1028. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260906/studies.json +0 -0
  1029. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260907/effort-analysis.json +0 -0
  1030. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260907/effort-pairs.json +0 -0
  1031. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260907/manifest.json +0 -0
  1032. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260907/officeqa-luna-paper-tools-pairs.json +0 -0
  1033. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260907/officeqa-luna-paper-tools-skill.md +0 -0
  1034. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260907/spreadsheet-luna-scoped-python-pairs.json +0 -0
  1035. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260907/spreadsheet-luna-scoped-python-skill.md +0 -0
  1036. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/research/update-20260907/studies.json +0 -0
  1037. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/runtime/acorn.mjs +0 -0
  1038. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/runtime/audit_js.mjs +0 -0
  1039. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/sealqa/id_split/split_manifest.json +0 -0
  1040. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/sealqa/id_split/test.json +0 -0
  1041. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/sealqa/id_split/train.json +0 -0
  1042. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/sealqa/id_split/val.json +0 -0
  1043. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/sealqa/protocol.json +0 -0
  1044. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/sealqa/wiki/SKILL-s0.md +0 -0
  1045. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/sealqa/wiki/index.md +0 -0
  1046. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/sealqa/wiki/logs.md +0 -0
  1047. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/sealqa/wiki/prompts/maintainer.md +0 -0
  1048. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/sealqa/wiki/prompts/proposer.md +0 -0
  1049. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/sealqa/wiki/skill-impact.md +0 -0
  1050. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/spreadsheet/id_split/split_manifest.json +0 -0
  1051. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/spreadsheet/id_split/test.json +0 -0
  1052. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/spreadsheet/id_split/train.json +0 -0
  1053. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/spreadsheet/id_split/val.json +0 -0
  1054. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/spreadsheet/protocol.json +0 -0
  1055. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/spreadsheet/wiki/SKILL-s0.md +0 -0
  1056. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/spreadsheet/wiki/index.md +0 -0
  1057. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/spreadsheet/wiki/logs.md +0 -0
  1058. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/spreadsheet/wiki/prompts/maintainer.md +0 -0
  1059. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/spreadsheet/wiki/prompts/proposer.md +0 -0
  1060. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/resources/spreadsheet/wiki/skill-impact.md +0 -0
  1061. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/results.py +0 -0
  1062. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/score_rules.py +0 -0
  1063. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/scorer_trust.py +0 -0
  1064. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/sealqa/__init__.py +0 -0
  1065. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/sealqa/loop.py +0 -0
  1066. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/sealqa/rollout.py +0 -0
  1067. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/settings.py +0 -0
  1068. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/skill_proposer.py +0 -0
  1069. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/spreadsheet/__init__.py +0 -0
  1070. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/spreadsheet/loop.py +0 -0
  1071. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/spreadsheet/rollout.py +0 -0
  1072. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/spreadsheet/study.py +0 -0
  1073. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/tool_audit.py +0 -0
  1074. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/wiki.py +0 -0
  1075. {briefloop-0.30.0 → briefloop-0.31.3}/src/wikiskill/wiki_maintainer.py +0 -0
  1076. {briefloop-0.30.0 → briefloop-0.31.3}/start.ps1 +0 -0
  1077. {briefloop-0.30.0 → briefloop-0.31.3}/start.sh +0 -0
  1078. {briefloop-0.30.0 → briefloop-0.31.3}/tests/check_distribution.py +0 -0
  1079. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_anchored_popover.mjs +0 -0
  1080. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_assessment_checks.mjs +0 -0
  1081. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_chat_attachments.mjs +0 -0
  1082. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_chat_commands.mjs +0 -0
  1083. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_chat_drafts.mjs +0 -0
  1084. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_chat_layout.mjs +0 -0
  1085. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_checkout_eol.mjs +0 -0
  1086. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_citation_clipboard.mjs +0 -0
  1087. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_citation_edit.mjs +0 -0
  1088. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_citation_evidence.mjs +0 -0
  1089. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_citation_sources.mjs +0 -0
  1090. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_clipboard_fallback.mjs +0 -0
  1091. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_export_menu.mjs +0 -0
  1092. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_fact_check_availability.mjs +0 -0
  1093. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_fact_check_grants.mjs +0 -0
  1094. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_fast_mode.mjs +0 -0
  1095. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_feedback_list.mjs +0 -0
  1096. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_job_presentation.mjs +0 -0
  1097. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_learning_retry.mjs +0 -0
  1098. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_length_controls.mjs +0 -0
  1099. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_licenses.mjs +0 -0
  1100. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_live_status.mjs +0 -0
  1101. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_markdown_import.mjs +0 -0
  1102. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_market_convention.mjs +0 -0
  1103. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_mcp_selection.mjs +0 -0
  1104. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_model_selection.mjs +0 -0
  1105. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_native_requests.mjs +0 -0
  1106. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_office_tools.mjs +0 -0
  1107. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_pending_report.mjs +0 -0
  1108. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_previous_report.mjs +0 -0
  1109. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_progress_race.mjs +0 -0
  1110. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_readers.mjs +0 -0
  1111. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_reasoning_controls.mjs +0 -0
  1112. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_release_controls.mjs +0 -0
  1113. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_report_browsing.mjs +0 -0
  1114. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_report_chat_drawer.mjs +0 -0
  1115. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_report_feedback.mjs +0 -0
  1116. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_report_form_defaults.mjs +0 -0
  1117. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_report_language.mjs +0 -0
  1118. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_report_load.mjs +0 -0
  1119. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_report_outline.mjs +0 -0
  1120. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_report_panels.mjs +0 -0
  1121. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_report_start.mjs +0 -0
  1122. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_report_version_info.mjs +0 -0
  1123. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_research_process.mjs +0 -0
  1124. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_review_coverage.mjs +0 -0
  1125. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_review_status.mjs +0 -0
  1126. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_revision_questions.mjs +0 -0
  1127. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_runtime_discovery.mjs +0 -0
  1128. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_runtime_feedback.mjs +0 -0
  1129. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_runtime_model_picker.mjs +0 -0
  1130. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_runtime_permission_panel.mjs +0 -0
  1131. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_settings_workspaces.mjs +0 -0
  1132. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_setup_state.mjs +0 -0
  1133. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_source_library.mjs +0 -0
  1134. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_source_lifecycle.mjs +0 -0
  1135. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_source_media.mjs +0 -0
  1136. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_source_search.mjs +0 -0
  1137. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_source_upload.mjs +0 -0
  1138. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_task_progress.mjs +0 -0
  1139. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_template_groups.mjs +0 -0
  1140. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_template_output.mjs +0 -0
  1141. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_update_notifications.mjs +0 -0
  1142. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_upload_limits.mjs +0 -0
  1143. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_version_diff.mjs +0 -0
  1144. {briefloop-0.30.0 → briefloop-0.31.3}/tests/frontend_workspace_proposal.mjs +0 -0
  1145. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_agent_backend.py +0 -0
  1146. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_agent_session_budget.py +0 -0
  1147. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_article_materials.py +0 -0
  1148. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_chat_dispatch.py +0 -0
  1149. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_codex_home.py +0 -0
  1150. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_codex_idle.py +0 -0
  1151. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_connector_authorization.py +0 -0
  1152. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_connector_empty_catalog.py +0 -0
  1153. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_connectors.py +0 -0
  1154. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_core.py +0 -0
  1155. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_cross_module_regressions.py +0 -0
  1156. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_delivery_checks.py +0 -0
  1157. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_demo.py +0 -0
  1158. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_desktop_lifecycle.py +0 -0
  1159. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_entrypoint.py +0 -0
  1160. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_execution_records.py +0 -0
  1161. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_export_admission.py +0 -0
  1162. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_external_mcp.py +0 -0
  1163. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_external_requests.py +0 -0
  1164. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_fact_check_phase.py +0 -0
  1165. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_fact_check_review.py +0 -0
  1166. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_fact_status_tool.py +0 -0
  1167. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_fast_mode.py +0 -0
  1168. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_fast_reports.py +0 -0
  1169. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_fast_research.py +0 -0
  1170. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_feedback_view.py +0 -0
  1171. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_figure_exports.py +0 -0
  1172. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_figure_flow.py +0 -0
  1173. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_figures.py +0 -0
  1174. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_finding_anchors.py +0 -0
  1175. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_harness.py +0 -0
  1176. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_human_learning.py +0 -0
  1177. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_interactive_runtime.py +0 -0
  1178. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_markdown_download.py +0 -0
  1179. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_media_sources.py +0 -0
  1180. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_model_catalog_defaults.py +0 -0
  1181. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_multimodal_harness.py +0 -0
  1182. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_multimodal_http.py +0 -0
  1183. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_native_provider_storage.py +0 -0
  1184. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_native_providers.py +0 -0
  1185. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_next_report.py +0 -0
  1186. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_notifications.py +0 -0
  1187. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_npm_native_shim.py +0 -0
  1188. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_office_source_structure.py +0 -0
  1189. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_office_surfaces.py +0 -0
  1190. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_ooxml_order.py +0 -0
  1191. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_opencode_provider.py +0 -0
  1192. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_opencode_questions.py +0 -0
  1193. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_opencode_reasoning.py +0 -0
  1194. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_opencode_review_version.py +0 -0
  1195. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_opencode_server_stdin.py +0 -0
  1196. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_opencode_version_probe.py +0 -0
  1197. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_posix_process_tree.py +0 -0
  1198. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_pr593_roundtrip.py +0 -0
  1199. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_progress.py +0 -0
  1200. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_provider_catalog.py +0 -0
  1201. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_quality_reading_context.py +0 -0
  1202. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_reader_profiles.py +0 -0
  1203. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_release.py +0 -0
  1204. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_release_identity.py +0 -0
  1205. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_report_length_feedback.py +0 -0
  1206. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_report_path_regressions.py +0 -0
  1207. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_research_gap_updates.py +0 -0
  1208. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_resume_in_place.py +0 -0
  1209. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_review_capability.py +0 -0
  1210. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_review_finding_consistency.py +0 -0
  1211. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_review_modes.py +0 -0
  1212. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_review_packet_paths.py +0 -0
  1213. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_review_schema_drift.py +0 -0
  1214. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_review_visual_input.py +0 -0
  1215. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_revision_policy.py +0 -0
  1216. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_role_models.py +0 -0
  1217. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_runtime_bridge.py +0 -0
  1218. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_runtime_bridge_idle.py +0 -0
  1219. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_runtime_json_bom.py +0 -0
  1220. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_runtime_liveness.py +0 -0
  1221. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_runtime_propagation.py +0 -0
  1222. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_runtime_retry.py +0 -0
  1223. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_search_credentials.py +0 -0
  1224. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_search_policy.py +0 -0
  1225. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_settings_transactions.py +0 -0
  1226. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_software_release_notes.py +0 -0
  1227. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_software_version.py +0 -0
  1228. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_source_library_search.py +0 -0
  1229. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_source_lifecycle.py +0 -0
  1230. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_source_recovery_regressions.py +0 -0
  1231. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_source_updates.py +0 -0
  1232. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_template_conversion_http.py +0 -0
  1233. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_templates.py +0 -0
  1234. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_user_input.py +0 -0
  1235. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_user_source_refresh.py +0 -0
  1236. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_version_consistency.py +0 -0
  1237. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_websearch.py +0 -0
  1238. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_wikiskill_engine_windows.py +0 -0
  1239. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_windows_antigravity_permissions.py +0 -0
  1240. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_windows_connector_acl.py +0 -0
  1241. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_windows_distribution.py +0 -0
  1242. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_windows_mcp_supervisor.py +0 -0
  1243. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_windows_platform.py +0 -0
  1244. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_windows_release_paths.py +0 -0
  1245. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_windows_review_paths.py +0 -0
  1246. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_windows_runtime_bundle.py +0 -0
  1247. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_windows_xlsx_paths.py +0 -0
  1248. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_word_import.py +0 -0
  1249. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_word_source_locators.py +0 -0
  1250. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_word_toc.py +0 -0
  1251. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_worker_idle.py +0 -0
  1252. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_workspace_action_errors.py +0 -0
  1253. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_workspace_profile.py +0 -0
  1254. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_workspaces.py +0 -0
  1255. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_writer_assembly.py +0 -0
  1256. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_writer_cli_guidance.py +0 -0
  1257. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_writing_agreements.py +0 -0
  1258. {briefloop-0.30.0 → briefloop-0.31.3}/tests/test_xlsx_officecli_integration.py +0 -0
  1259. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/LICENSE +0 -0
  1260. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/NOTICE.md +0 -0
  1261. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/acp/constants.ts +0 -0
  1262. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/acp/json.ts +0 -0
  1263. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/acp/models.ts +0 -0
  1264. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/acp/rpc.ts +0 -0
  1265. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/acp/session-params.ts +0 -0
  1266. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/acp/types.ts +0 -0
  1267. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/byok-reference/byok-opencode.ts +0 -0
  1268. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/byok-reference/provider-models.ts +0 -0
  1269. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/core/index.ts +0 -0
  1270. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/core/json-line-stream.ts +0 -0
  1271. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/runtime-models/codex-models.ts +0 -0
  1272. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/runtime-models/mmd-routes.ts +0 -0
  1273. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/runtime-models/models.ts +0 -0
  1274. {briefloop-0.30.0 → briefloop-0.31.3}/third_party/open-design/runtime-models/opencode-models.ts +0 -0
@@ -0,0 +1,2633 @@
1
+ # 变更记录
2
+
3
+ ## 0.31.3
4
+
5
+ - 修复导出后重开滚到页尾时右栏被顶栏遮挡:任务记录随正文列共同延长右栏的滚动边界;大纲、无稿件和窄屏保留原位置。
6
+ - 新报告默认自主直写,研究与写稿由同一作者完成;普通入口收起流程选择,标准流程保留在高级选项。选定连接器资料时自动使用已有授权的标准流程。
7
+ - 修复所选连接器资源未进入作者材料的问题:按本轮授权读取并保存来源回执,复用预算和已读材料。不支持的参数工具组合在任务开始前明确拒绝。
8
+ - 修复直写 WikiSkill 未送达:作者实际应用候选与已启用方法,比较及采用前核验送达。保存保留正文粗体和作者日期记录。
9
+ - 简化面向审阅者的声明与重复免责,把核查状态写成有依据的事实。
10
+ - 修复报告向下滚动时右栏标签被顶栏遮挡,操作栏换行后自动避让,右栏内容独立滚动。
11
+ - 内置 BriefLoop Agent 升级至 Pi 1.1.0,保留工具隔离、会话恢复和取消。
12
+ - Windows 初始窗口在欢迎页加载完成后显示,修复首次绘制延迟;跨平台发行使用同一冻结后端。
13
+
14
+
15
+ ## 0.31.3rc1
16
+
17
+ - 修复已导出报告重开后滚到底部时右栏再次被遮挡:桌面编辑视图把尾部任务记录纳入正文列,延长右栏所属行;大纲、无稿件和窄屏保留原任务记录位置。
18
+ - 基于 0.31.2 冻结候选继续验收,不覆盖其原工件。
19
+
20
+ ## 0.31.2(未发布,验收中止)
21
+
22
+ - 新报告默认自主直写,研究与写稿由同一作者完成;普通入口收起流程选择,标准流程保留在高级选项。选定连接器资料时自动使用已有授权的标准流程。
23
+ - 修复所选连接器资源未进入作者材料的问题:按本轮授权读取并保存来源回执,复用预算和已读材料。不支持的参数工具组合在任务开始前明确拒绝。
24
+ - 修复直写 WikiSkill 未送达:作者实际应用候选与已启用方法,比较及采用前核验送达。保存保留正文粗体和作者日期记录。
25
+ - 简化面向审阅者的声明与重复免责,把核查状态写成有依据的事实。
26
+ - 修复报告向下滚动时右栏标签被顶栏遮挡,操作栏换行后自动避让,右栏内容独立滚动。
27
+ - 内置 BriefLoop Agent 升级至 Pi 1.1.0,保留工具隔离、会话恢复和取消。
28
+ - Windows 初始窗口在欢迎页加载完成后显示,修复首次绘制延迟;跨平台发行使用同一冻结后端。
29
+
30
+ ## 0.31.2rc5
31
+
32
+ - 修复报告滚动时右栏标签被顶栏遮挡:按实际顶栏和可用窗口高度定位,右栏内容独立滚动,键盘定位不再带走标签。
33
+ - 发行验收候选,包含0.31.1的自主直写默认、WikiSkill送达、日期/粗体保存和Pi1.1改动。
34
+ - Windows预发行验收同时核对PE基号与包内实际版本,保留校验失败输出。
35
+ - Windows初始窗口在欢迎页加载完成后显示,减少首次绘制等待;原生界面验收仍待完成。
36
+ - 在作者输入编译前按冻结授权读取所选资源,复用读取回执和预算;离线Codex不支持的参数工具组合在任务开始前明确拒绝。
37
+ - 已选择连接器资料而未指定生成方式时,自动使用已支持连接器授权的标准流程。显式直写与实时连接器组合在开始前明确拒绝;不支持该授权提交的聊天工具也不再静默忽略选择。
38
+ - 可显式启用桌面启动时序日志,记录页面加载、环境就绪、IPC状态与首次绘制阶段,用于Windows普通窗口启动延迟的原生排查;不记录材料、路径或凭据。
39
+
40
+
41
+ ## 0.31.2rc4
42
+
43
+ - 发行验收候选,包含0.31.1的自主直写默认、WikiSkill送达、日期/粗体保存和Pi1.1改动。
44
+ - Windows预发行验收同时核对PE基号与包内实际版本,保留校验失败输出。
45
+ - Windows初始窗口在欢迎页加载完成后显示,减少首次绘制等待;原生界面验收仍待完成。
46
+ - 在作者输入编译前按冻结授权读取所选资源,复用读取回执和预算;离线Codex不支持的参数工具组合在任务开始前明确拒绝。
47
+ - 已选择连接器资料而未指定生成方式时,自动使用已支持连接器授权的标准流程。显式直写与实时连接器组合在开始前明确拒绝;不支持该授权提交的聊天工具也不再静默忽略选择。
48
+ - 可显式启用桌面启动时序日志,记录页面加载、环境就绪、IPC状态与首次绘制阶段,用于Windows普通窗口启动延迟的原生排查;不记录材料、路径或凭据。
49
+
50
+ ## 0.31.1
51
+
52
+ - 新报告默认自主直写,由同一作者完成研究与成稿,保存后继续补充依据、评价和修订;普通入口收起生成方式选择,标准流程保留在高级选项。未指定方式的企业内部报告、独立风格参考、行业季报和外部 Pi 沿用既有标准流程,显式选择及历史任务的执行方式不变。
53
+
54
+ - 报告写作把核查状态写成有依据的事实,减少面向审阅者的声明、过程叙述和重复免责;保留影响判断的真实缺口与限制(#920)。
55
+ - 修复直写模式未把已选 WikiSkill 送达作者的问题;学习比较与采用前核对宿主保存的实际输入,缺少送达证据时保留候选并拒绝采用。比较使用同一冻结作者代码。
56
+ - 直写保存保留正文粗体与作者提供的日期依据;证据补充沿用已保存日期信息,来源抓取日期由来源记录提供,未提供的字段不补造。
57
+ - 内置 BriefLoop Agent 升级至 Pi 1.1.0,保留角色工具隔离、会话恢复、取消、压缩与图片处理,长子任务的隐式缓存预热保持关闭。
58
+ - 修复宿主直写检索入口未指定受控 provider 的示例;沿用冻结首选与缺口补查策略,显式选择已允许渠道,不自动切换搜索服务。
59
+
60
+ ## 0.31.0
61
+
62
+ - 修复 OpenCode v2 默认推理档被错误拒绝,显式模型与其他推理档仍按冻结配置校验。
63
+
64
+ - 新增「行业季报(趋势与格局变化)」用途:先做行业全景,再由模型选 8–15 个主体,按期初、期末两端核对状态变化表;中文正文软目标 8,000–10,000 字。真实试跑已能完整生成、评价和修订,但季度起点证据常不足,按试用提供。
65
+ - 新增「直写(试用)」:一位作者在同一会话里用受控搜索和读取工具完成研究与写作,保存后照常定位证据、评价并自动修订一次。默认仍为分轮研究。
66
+ - 「截至提交时刻」的分析类报告不再把搜索限定在当天;关键问题较多时给出更宽的篇幅建议,同时提示重复表述、堆叠免责和过程叙述。
67
+ - 网页读取失败、本轮已选择 Tavily 且配置了密钥时,用 Tavily 提取正文补读,计入本轮页面额度。SEC EDGAR 要求声明联系邮箱,可在 设置 › 搜索 填写,只发送给 sec.gov。
68
+ - 目标驱动研究:内置引擎主 Agent 可直接使用受控搜索和读取;CLI 宿主没有 Scout 时也能交接给 Analyst;既无搜索又无新来源的轮次须写明停止原因。
69
+ - 修复评价引文无法定位时整次检查失败:先在同一会话修一次,仍无法定位则只去掉该锚点、保留问题。修订不再采用写作模型自拟的读者契约;同内容不再重复生成版本;后台评价中的自动修订由 Analyst 执行;大网页按引用窗口限量发送,避免请求过大失败。
70
+ - 修订处理说明在没有独立审阅时提示 `responses` 写 `[]`,有审阅发现时列出期待的编号;内置引擎后续轮次 Scout 未登记时给出登记方法。
71
+ - 内置引擎的角色提示词去掉与工具说明重复的参数规则,消除摘录写法前后矛盾;真实对照未见报告质量下降。
72
+ - 内部清理:删除约 1,500 个只复述实现的测试和仅由本程序写入记录的自校验哈希,API 提供商设置拆为独立前端模块。
73
+
74
+ ## 0.30.0
75
+
76
+ - 目标驱动研究按用户关键问题保存覆盖判断、原文依据和未答范围;旧冻结任务按原契约恢复。
77
+ - 任务的研究过程展示「有依据/部分有依据/尚待回答」,可打开保存的来源;这些状态不是独立核查结论。
78
+ - 目标驱动允许集中问题由主 Agent 直接研究,不再因零初始材料强制创建 Scout;独立支线仍可按需委派。
79
+ - 修复 DuckDuckGo 忽略每次查询结果数,导致并行查询抢占其他关键问题候选额度;完整原始回执继续保留。
80
+ - 快速检索按实际搜索渠道校验查询,不再把智谱的70字符限制套用到其他渠道。
81
+ - 网页读取识别 gzip 压缩响应并限量解压,保留原始响应与解压内容校验值;损坏或解压超限记为失败,不再把压缩乱码记作正文。
82
+ - 识别返回 CAPTCHA 的“Request Access”网页,保留拦截原件并显示读取失败。
83
+ - 默认仍为分轮研究;公开联网小样本对照未证明目标驱动稳定更快或质量不退步,继续提供试用选择。
84
+
85
+ ## 0.29.1
86
+
87
+ - 0.29.0 草稿未公开发行;本版包含其已合并的新建报告、下一期、写作约定与经验反馈改动。
88
+ - 标准报告增加可回退的「按目标补证(试用)」研究方法;由问题和证据决定下一步,保留预算、轮次与交付控制。
89
+ - 各执行端的主 Agent、Scout、Analyst、Evaluator 使用按角色组织的目的、证据入口、方法和边界导航;保留原始要求与历史快照。
90
+ - 没有据此宣称质量、速度或 Token 收益,默认仍沿用分轮研究。
91
+
92
+ ## 0.29.0 — 2026-10-09
93
+
94
+ - 新建报告优先进入普通对话;首页可导入旧报告,完整表单仍可直接使用。报告页可开始下一期,沿用已保存的读者与结构,不自动复用旧事实和授权。
95
+ - 明确写作要求可在报告页直接保存为约定,限定当前报告系列或主动扩展到工作区;支持撤销和本期跳过。生成前核对往期版本,避免把无关报告挂入旧系列。
96
+ - “留下经验”与“下期沿用”共用输入框:前者进入原有 WikiSkill 验证链,后者直接保存约定。学习进度和真实采用结果保留在报告页,持平不宣称改善;修复试写预算继承及失败收尾。
97
+ - 接纳本地图文文章包,保留正文、原图对应、缺图和重复图片记录;普通 Markdown/HTML 仍按文本处理,不因远程 logo 要求视觉读取。图片可用不代表已读图或已核实。
98
+ - Codex 会话历史独立存放,减少 BriefLoop 后台任务出现在个人 Codex 列表中的干扰;来源库新增可恢复归档、报告范围浏览和最新优先排序。
99
+ - HTML/PDF 导出与报告来源、版本、检查和审阅状态一致,引用可回查;修复聊天布局、Scout 状态、推理选项保存和来源预览切换。
100
+ - SQLite 日志模式按实际环境显示并检查兼容性;旧桌面环境仅在确认未使用时清理。评价研究工具和候选规则保留验证边界,不承诺已证明稳定质量提升。
101
+
102
+ ## 0.28.4 — 2026-10-02
103
+
104
+ - 对话 Agent 可以通过正在运行的服务停止指定任务及子任务,保留已保存稿件,并返回实际停止状态。
105
+ - 新工作区的联网完整报告默认启用独立事实核查;已有选择、单报告覆盖、离线和快速模式保持各自规则。
106
+ - Native Scout 沿用已登记的轮次结果路径,在冻结上限内恢复可用并行容量,显示真实开始与结束时间。
107
+ - 后续研究轮次声明任务时同步保存计划,避免上一轮任务残留导致无法结束研究。
108
+ - 支持从已保存报告准备下一期:复用写作约定,重新确认本期日期和材料;不继承旧证据、评分或联网授权。
109
+ - 点击“基于此报告开始下一期”直接准备表单,不再弹出确认框;页面保留说明与取消跨期关联入口,取消时保留已填内容。
110
+
111
+ ## 0.28.3 — 2026-10-02
112
+
113
+ - 内置 BriefLoop Agent 升级至 Pi 1.0.0,适配压缩指令的新 transcript 接口,保留角色工具隔离及失败后的会话恢复。
114
+ - 随包提供图像解码 worker 与 WASM,使报告图片在独立 wheel 和桌面后端中可实际解码、缩放和发送;增加旧版会话迁移与 Mac/Windows 引擎回归。
115
+ - 修复极窄图片缩放被遗漏的问题,关闭长子任务期间未计入用量的默认缓存预热,并更新内置依赖以消除已知漏洞版本。
116
+ - 版本与更新设置直接显示当前版本及可用更新的改动说明,保留检查、下载和安装状态;当前版本说明随包提供,离线也能查看。
117
+ - 增加定期报告实验的离线预检,核对时间范围、材料哈希及输入与参考答案隔离;预检本身不代表报告质量提升。
118
+ - 修复桌面正常停止后端时 Python 等待 stdin 导致异常退出的问题;忙任务拒绝停止时保留服务与管道。
119
+
120
+ ## 0.28.2 — 2026-10-01
121
+
122
+ - 延续设计 v3.1 的品牌、引用与来源卡、过程折叠和 Word / Excel 涨跌惯例与 AI 来源标识。
123
+ - 对话运行设置可选择执行引擎、模型与推理强度,研究过程浮层跟随触发位置。
124
+ - 本稿信息绑定已保存版本的原子写作回执,区分请求配置与宿主确认信息;人工修改、导入和未知来源不误归因,刷新信息保留未保存正文。
125
+ - 修正 Mac DMG 背景像素密度,并保留旧版回退。原生窗口与办公软件验收按发行工件的实际记录披露。
126
+
127
+ ## 0.28.1 — 2026-10-01
128
+
129
+ - 品牌切换黛蓝与冷灰,组件圆角收紧;更新应用标记、Mac / Windows 图标、DMG 背景及内置 Word 品牌主题,保留已保存的用户模板配色。
130
+ - 研究过程以可核对的动作折叠呈现;引用使用可聚焦编号、来源卡与右栏定位。
131
+ - 每份报告保存中国大陆/国际涨跌惯例,Word / Excel 保留对应元数据和有明确变化语义的数字颜色;已有位图图表不自动重绘。
132
+ - 已知 AI 生成或混合内容导出带可见提示与格式适配的来源标识;纯人工稿不误标,不自动声称人工审阅。浏览器打印 PDF 的元数据限制单独提示。
133
+ - 旧品牌色回归检查覆盖仓库文本,旧 green 变量仅作一版本兼容别名。真实浏览器已核对引用键盘操作、来源定位、过程折叠与冲突关注、配色保存,以及实际下载的 Word / Excel;原生安装包和办公软件结果按本版发行记录分别报告。
134
+
135
+ ## 0.28.0 — 发行准备
136
+
137
+ - 增加本机 stdio MCP 服务:`briefloop mcp --workspace /absolute/workspace`,通过官方 MCP SDK 调用既有工作区的发现、来源、报告提交/查询、保存修订和 Word 导出工具。工作区路径与身份在启动时固定;错误回执保留公开错误码,不泄漏本地内部诊断。
138
+ - Mac 桌面升级在所有适用依赖 pin 与同一锁匹配后复用已有环境,仅安装随包 App wheel;校验失败保留旧环境并走正常准备流程。
139
+ - Windows 新建解释器环境后,仅复用经过 RECORD、哈希及 ABI 核验的普通依赖文件;不复制 Scripts 或可执行 pth,跳过包由正常 pip 补齐。Windows 实际升级复用仍待独立原生验收。
140
+ - Mac ZIP 更新的 Finder 交接链接跟随实际安装目录,复用回退提示更加明确。工件仍使用未签名 ZIP 路径,未声称 Developer ID 签名或公证自动更新已通过。
141
+
142
+ 本机 stdio MCP 的无模型保存/修订/Word 闭环已核验;报告提交只验证排队与幂等性,尚未完成本版真实模型生成验收。Sites 远程 MCP 尚缺生产 OAuth 与可达后端,不代表 ChatGPT 云已连通。范围与渠道状态见 [0.28.0 准备记录](docs/release-0.28.0.md)。0.27.1 已发布工件保持不变。
143
+
144
+ ## 0.27.1 — 2026-10-01
145
+
146
+ - 快速模式可在所有执行引擎上运行。Antigravity、CodeBuddy 等无法由 BriefLoop 关闭自带工具的 CLI 不再在排队后报“尚未验证受限文件或联网隔离”而失败;改为在工作区之外的空目录写作,并在研究过程中记录写作期间的工具使用。内置引擎与 Pi 请求无工具执行;Codex、OpenCode 保留宿主只读权限,不宣称工具全部关闭或只能读取所选材料。所有引擎都保留其报告的工具活动。
147
+ - 快速稿后台补依据时,单独列出在所选材料中找不到原文依据的结论。
148
+ - 选择快速模式时,界面提前说明当前引擎属于哪一种写作隔离方式。
149
+ - 报告期间约一个月(或标题为月报)时,默认使用月报检索额度(80 次搜索 / 400 个候选 / 150 个网页)、9,000–10,000 字篇幅和最多 8 个 Scout;用户或主 Agent 指定的值优先。主 Agent 可在提交前按信息量设定 Scout 上限(1–16)。
150
+ - 第一轮侦察后、搜索额度用了不到一半就结束研究时,主 Agent 必须继续下一轮,或写明提前收束的理由;理由显示在研究过程中。
151
+ - 从对话提交报告时,沿用该对话的执行引擎,不再出现“Antigravity · opus”这类引擎与模型错配。
152
+ - 写作摘要只提炼判断,不逐条复述正文;表格不重复前文数据。
153
+ - Wiki 页列出已保存的反馈及整理状态;“以后所有报告都要遵守”改为默认不勾选。Antigravity 标注为有限支持。
154
+
155
+ ## 0.27.0 — 2026-09-30
156
+
157
+ - 从往期报告开始新任务,导入正文或 Word 修订,确认读者、结构、口径与禁区后再生成。
158
+ - 按读者保存偏好;将修订区分为写作经验、事实纠错与待确认事项,避免把不确定改动直接学成规则。
159
+ - 对已采用技能跟踪相关修订是否再次出现,未完成的复验明确保留为未核验。
160
+ - API 提供商保存提示随 BriefLoop Agent / OpenCode 执行引擎切换,准确说明本机配置归属。
161
+
162
+ 发行与验收范围见 [0.27.0 记录](docs/release-0.27.0.md)。上一正式版 0.26.4 保留供回退。
163
+
164
+ ## 0.26.4 — 2026-09-29
165
+
166
+ - App 更新后自动准备新后端,首次安装与修复仍由用户触发;启动页显示真实阶段。
167
+ - 报告工具栏与侧栏去重,来源可筛选打开,检查结果按需处理、说明和通过分组。
168
+ - 统一设计令牌与焦点样式;清理空闲旧运行环境,保留当前、上一份及运行中任务使用的环境。
169
+ - 延续单一冻结提交、共享后端 wheel 和同版本工件身份保护;0.26.3 未公开工件保留为草稿,不覆盖重建。
170
+
171
+ ## 0.26.3
172
+
173
+ - 统一 Mac、Windows 与 Python/CLI 的发行基线,包含 0.26.2 的长路径、Excel 工作表预览、报告修订绑定、权限问答和子任务进度修复。
174
+ - Mac 更新检查使用官方静态发行清单,降低 GitHub API 限流导致的更新失败。
175
+ - 正式桌面打包必须绑定干净的冻结提交与共享后端;拒绝同版本不同内容的覆盖。候选使用预发行编号,两端与 PyPI 复用一次构建的同一份后端。
176
+
177
+ 渠道交付以正式发行页及随包原生验收记录为准;流程见 [发行记录](docs/release-0.26.3.md)。
178
+
179
+ ## 0.26.2
180
+
181
+ - Windows 长工作区路径更可靠:上传与读取来源、初始化模板、独立核查、Word/Excel 导出和预览不再因路径过长失败;同时保留目录边界保护。
182
+ - Excel 预览可选择实际工作表,文件修改后会刷新缓存。过大的工作表会提示下载完整 Excel,避免把截断图片误当作完整预览。
183
+ - 改善报告修订时的数字与引用定位,明确区分数值单位和目标条件,并在保存前校验主张绑定。
184
+ - 交互问答保留宿主提供的权限选项;Pi 多行编辑保留预填内容、空格和空答案。修复任务结束时将已回答的问题误标为过期的竞争问题。
185
+ - Codex 子任务进度跟随实际回合回执更新;取消、中断和失败不会被旧计划覆盖为运行中,也不会误算为研究完成。
186
+
187
+ 本次先发布 Windows x64;Mac 安装包保持 0.26.1,0.26.2 随后提供。Windows 安装包尚未签名。渠道与验收范围见 [发行记录](docs/release-0.26.2.md)。
188
+
189
+ ## 0.26.1 · 发行准备
190
+
191
+ - 修复独立审阅评分重大问题未进入正式核查发现时仍被接纳为完成的缺陷;增加显式关联与历史交付防御,原始拒绝结果保留。重大证据问题不能借非强制条款降为普通提示,草稿编辑与下载继续可用。
192
+ - 模型候选改为实时提供方 API / CLI 宿主目录,移除内置静态候选、具体型号自动预选与固定档位回退;保存连接后旧响应不会覆盖新目录。
193
+ - 按用户要求移除依赖预选型号、必须额外强绑模型才能运行的旧测试;新的审阅接纳验证直接回放保存结果,不派发模型。
194
+
195
+ 发行与平台验证见 [0.26.1 记录](docs/release-0.26.1.md),准备状态不表示现有安装已升级。
196
+
197
+ ## 0.26.0
198
+
199
+ - 新增已有材料及联网快速报告:先保存可编辑下载的初稿,再后台补依据和评价;不额外限制输入字符数,用户编辑优先,正式交付继续绑定独立审阅。
200
+ - 引用支持正文原句、来源标题与原文上下文;数字检查显示实际可核对范围。快速稿补充事实状态、日期、范围与语义支持检查,未核查保持明确;独立审阅展示逐条结论判断及未核查事项。
201
+ - 新增可选 Jev 依据预检:用户确认发送范围后调用 TypeSafe,保存本稿观察、实际模型及公开用量,不自动改稿、不把概率当事实或交付结论。
202
+ - 完善研究交接、缺口更新和 Native 显式研究收尾;篇幅区分软目标与用户指定严格上限,恢复回执保留原始选择。
203
+ - 模型目录按需刷新,报告列表与状态查询优化;增加后台原件读取、Word/已有报告模板入口、表格与分页保护,以及导出版本恢复和内部定位清理。
204
+ - 纳入 Windows UTF-8 读取/锁修复、SQLite 测量工具和隔离语义实验。没有把实验指标或单个平台检查当作正式发行验收。
205
+
206
+ 0.26.0 已发布至 GitHub Releases 与 PyPI;冻结前的 [候选清单](docs/release-0.26.0.md) 保留为历史过程记录,实际渠道与原生验收边界见正式发行说明。
207
+
208
+ ## 0.25.0
209
+
210
+ - 英文报告成为完整写作选项:语言随报告进入规划、写作、修订、评价与审阅,英文篇幅按词显示;新增10套英文版式,Word、HTML/PDF与Excel固定标签跟随报告语言。
211
+ - 新增 Excel 报表导出,可按表分工作表或整份报告单表导出。未安装 OfficeCLI 也可使用基础导出;可选增强失败或产物损坏时保留有效基础文件,支持取消、预览与去重复用。
212
+ - OfficeCLI 质检区分观察与失败,明确外部渲染服务说明;修复并发预览图片与元数据不一致、合并表头、大小写重名工作表,以及以等号开头的文本被误当公式。
213
+ - 同时支持 OpenCode 1.x 与 2.x,按实际宿主使用对应服务、会话、模型目录、推理档位和子任务协议;保留 v1,不自动迁移旧会话或认证。v2 Provider 配置在 OpenCode 中完成,已开始会话的系统约定变化需明确新建对话。
214
+ - 审阅拆分为默认普通模式与严格模式。普通模式支持 Codex、OpenCode 与 BriefLoop Agent;严格模式目前由 BriefLoop Agent 强制限定核查包和工具访问。事实与证据标准一致,实际模式和后端随任务冻结并显示,历史未知记录不冒充严格结果。
215
+ - 修复 Native 中文任务包读取和 Windows 更新缓存定位;英文模板选择、Word 渲染缓存与打包模板清单同步修正。
216
+ - 数值核验新增欧元、英镑、按数量级的股份、质量与电量单位;不同币种、功率/电量和百分比/百分点仍分开处理,未知单位不冒充已核验。
217
+ - 状态刷新始终保留正在排队或执行的旧任务,最近记录增加后不会把它们从任务列表挤掉;已结束历史仍保持有界。
218
+
219
+ 本轮正式发布 macOS Apple Silicon、Python/CLI/PyPI 和 GitHub 源码;Windows 安装包保留既有稳定版,待原生验收后另行发布。Mac 包未做 Developer ID 签名或 Apple 公证。渠道状态及工件哈希以本次发行记录为准。
220
+
221
+ ## 0.24.0
222
+
223
+ - 汇合 Windows 与 Native 两条开发线,延续 BriefLoop Agent / Agent CLI 统一入口。Native 的对话、研究、写稿、独立评价与修订继续使用同一份来源和版本记录;支持共用写稿装配工具,减少手动填写富文本结构。
224
+ - 报告草稿、附件和所选版本在刷新或连接恢复后保留;轮询串行处理,旧请求不能覆盖新选择。审阅页展示本次冻结的条款及旧版要求检查,重大缺口不能用混合了软硬要求的父 ID 模糊处理。
225
+ - 托管搜索与网页读取通过 SQLite 合并同一任务的并发调用,共用预算;任务阶段结束后迟到结果保留记录但不接纳为有效来源。登录和访问拦截页不会作为可用原文,正文检索支持有界分页与显式正则。
226
+ - 写稿修改在响应丢失后可重放当前回执;旧请求和已覆盖版本仍被拒绝。修订保留引用并返回当前字数,数值位置提示不冒充事实核查。
227
+ - Word 来源保留可点击链接和本稿定位,普通及模板导出绑定同一冻结来源快照;更新缓存身份,避免复用来源名称或链接已变化的旧文件。修复 DOCX 表格和空字符串单元格读取。
228
+ - Windows 修复凭据私有保存、中文任务包解码、PDF 导出取消后的恢复、更新失败重试及安装器校验。Codex 子任务活动按实际公开身份和用量展示,不推断未提供的信息。
229
+ - WikiSkill 学习保留角色绑定;内部离线试写统一关闭联网和事实核查。OpenCode 空闲回收失败时保留所属进程句柄并重试,避免不断新建后台。
230
+
231
+ 下载入口和更新状态以实际发布工件为准。桌面仍需兼容 Python,首次准备依赖需要网络;签名、公证与各平台原生验收以本次发行说明为准。
232
+
233
+ ## 0.23.2 · 源码交接版本
234
+
235
+ 本次发布 GitHub 源码标签,供后续平台构建与验收。未发布此版本的 PyPI、macOS 或 Windows 安装包,不代表正式更新渠道已升级。
236
+
237
+ - 欢迎页与设置统一为“BriefLoop Agent / Agent CLI”,使用现有品牌图标;内置入口提示基于 Pi SDK,模型与推理强度仍可直接选择。
238
+ - 桌面启动页统一工作区卡片与原生标志,正常启动复用已准备的兼容环境;检查运行环境保留独立入口。
239
+ - 公共界面统一字号、色彩、输入框、按钮、圆角和焦点样式;修复报告顶栏标题被操作区挤压、窄屏侧栏文字与模板配色溢出。Word 保留一键下载与报告标题文件名。
240
+ - 报告分类图标优先读取本次冻结内容方法,首页与报告列表一致;清理重复新建入口,无定时计划时保留紧凑的新建入口。
241
+ - 更新 DESIGN.md 的实际实现范围,新增公共样式的令牌与构建一致性检查;历史样式仍按组件渐进迁移,不宣称全量清理完成。
242
+
243
+ - BriefLoop 内置引擎接通主链:对话与需求准备、冻结计划、并行 Scout、轮间交接、写前对照、Analyst 富文本写稿、独立评价和一次自动修订继续使用现有任务与版本系统。设置与聊天可选内置引擎,API 提供商表单可保存其本地密钥和自定义模型;不会启动其他 Agent CLI。
244
+ - 内置引擎停止主任务时取消所属子任务,已保存结果可恢复;同一对话提交回执与任务原子保存,重复提交不重复生成。等待子任务不作为模型流静默超时,取消不等待子工具自然返回。真实网页与公开周报验收发现并修复工具进度重复、Unicode 预览截断、需求额度遗漏和修订元数据晚拒绝;保留失败及恢复记录。早期候选完成部分 Mac/WPS 验收;当前集成版的跨平台发布验收尚未完成,未作为正式发行发布。
245
+
246
+ - 目标用时改为软目标,超过后继续执行;单轮硬上限移至高级“最长运行保护”,默认关闭。报告保存创建时的时间选择,修改工作区默认值不影响在途报告;连接故障检测和手动停止独立保留。
247
+ - 加强需求准备和共享 Analyst 写作方法:围绕读者问题选择比较基准、解释变化与业务影响,主体先写、摘要后写,不机械套框架;需求已足够时不追问无关基础资料。应用需求保留精确期间、独立写作偏好和人工章节,避免对象被显示成文字占位。
248
+
249
+ - 写作候选版本共用完整预检与接纳,检查后修改正文或元数据需取得新回执;兼容 CLI 支持按版本提交。字数偏好与工具未支持提示不要求改事实或凑字数,语义效果仍须真实对照验证。
250
+
251
+ ## 0.23.1
252
+
253
+ - 对话与模型设置共用推理强度入口;Claude Code、CodeBuddy、Antigravity、Pi 使用原生档位,ACP 宿主按当前模型公开的选项设置,未公开能力的宿主沿用默认。报告和独立角色继承冻结的推理配置。
254
+ - Opencode 和 MiMo 改用完整下拉列表,选着 high 时仍可看到其他档位;按所选模型读取 variant,并保留自定义档位入口。
255
+ - 修复 Antigravity Gemini 模型名中的档位与显式 effort 冲突;选择默认时清除覆盖,切换 CLI 不再意外继承 Codex 的 high。
256
+ - 宿主档位读取只启动临时元数据进程,读取结束关闭;防止旧模型的异步响应覆盖新选择。
257
+
258
+ ## 0.23.0
259
+
260
+ - 首页、报告、模板和设置统一使用设计令牌;分类图标共用色板,任务名、宿主名、时间格式与 HTML 转义收敛到公共定义。
261
+ - 首次使用选择宿主后,对话会同步使用该宿主及模型,不再残留初始宿主选择。
262
+ - 修复首次创建定时报告的入口被空列表隐藏,以及切入已有对话后任务栏未随任务完成收起的问题。
263
+ - Opencode 的推理档位随每次请求发送;设置应用到下一回合会同步该档位,选择“模型默认”不再回退到全局旧值。
264
+ - ZCode 默认明确使用 `build` 模式,旧 `native` 记录按 `build` 执行;只有用户明确选择 `yolo` 才关闭逐项询问,避免无界面 CLI 默认值意外扩大权限。
265
+ - 前端 API、评分面板和通用显示函数拆分为独立模块;保留报告版本、导出与恢复行为。
266
+
267
+ - 新增 ZCode 宿主:通过它的无界面 stream-json 运行,支持正文、推理、工具、用量与会话续接,权限用 ZCode 原生的 build/edit/plan/yolo。ZCode 已弃用 ACP,改用自有协议,因此走独立适配而非现有 ACP 通道。它的无界面运行没有选择模型的参数,模型沿用 ZCode 自身配置,界面如实显示该模型,指定其他模型会被拒绝;无界面下没有逐项授权通道,被权限模式拦下的操作直接失败,规划模式只提交计划、没有回答的回合记为失败。
268
+ - 报告顶栏直接下载 Word,制作完成自动下载并使用报告标题命名;其他格式提供独立 HTML 和 PDF:桌面版在后台离线渲染后直接另存为 PDF,浏览器通过打印对话框另存,都不再打开新窗口。
269
+ - 增加报告删除入口,运行中任务保护,保留来源及内部核查引用记录。
270
+ - 报告版本旁新增“查看改动”:与上一稿、第一稿或中间版本进行只读富文本比较,显示文字增删及表格、图片、格式变化;标记不会进入正文与 Word 导出。
271
+ - 报告导出菜单停留在“版式”下拉时不再意外关闭;下拉标签与选项宽度可读,含下拉的标签不再声明为菜单项。
272
+ - 内置模板构建计划、模板注册表、实际交付资产与产品文档中的后端清单、默认签名状态互相核对,数量与清单不一致会被测试拦下。
273
+ - 后台 bridge 任务遇到宿主授权请求时自动拒绝并立即失败,不再挂起到任务超时;有人在场的对话仍由用户回答。
274
+ - 报告派发不再被长时间运行的后台任务或排在队首、暂时无法开始的报告卡住;不同报告的独立审阅可以同时进行并分别停止,同一报告的审阅与核查仍按顺序执行。
275
+ - 轮询状态只列出版本摘要,不再携带所有历史正文;打开报告和比较版本时按需读取正文,报告搜索改由服务端检索正文,已删除报告不出现在结果中。
276
+ - 网页上传来源改为直接传原始文件,PDF 单文件上限提高到 100 MiB,其他文件仍为 18 MiB;PDF 页图按登记的页数读取,不再重复解析。
277
+ - DOCX 来源和 Word 模板按实际解压量限制展开大小,声明大小与实际内容不符的文件会被拒绝。
278
+ - Agent 发起的网页抓取和来源复查只访问公网地址;用户在界面上添加、重试或复查的网址仍可访问内网,但不读取本机回环与链路本地地址。
279
+ - Windows 桌面:读取网址、PDF、检测宿主版本和启动工作区时,子进程不再继承桌面的所有权输入管道。
280
+ - 桌面环境的 PATH 找不到 Node 时,仍可启动通过 npm 安装的宿主 CLI;Codex 模型列表不再显示标记为 `hide` 的内部条目。
281
+ - 在生成前核验独立审阅能力:执行后端未验证受限 Reviewer 时,事实核查在建报告、智能体提交、定时计划和排队时就被拒绝并说明可用后端,不再写完稿才失败;企业内部报告照常生成,评分明确标为普通评分,正式交付面板说明需要改用哪个后端完成独立审阅。
282
+ - 自动学习改为事前授权:新工作区默认关闭;开启自动学习或手动启动学习前,会显示历史报告数、轮数、试写次数上界、执行后端与模型,确认后才会调用模型。从旧版本升级的工作区先暂停自动学习,等待确认一次;调高轮数后暂停到再次确认。每批学习记录确认时的上限,试写次数和轮数超过上限即停止,不启用候选,反馈保留。报告选项里的“WikiSkill”开关改名为“自动学习”,已启用的技能照常用于报告。确认绑定当时看到的那份计划:确认之后改了轮数、执行后端、主模型或角色模型,自动学习会暂停到重新确认;Agent 只能把上限报给用户,不能代替用户确认;升级前排队、没有确认记录的学习批次会暂停并保留反馈。
283
+ - 内置引擎保留受限独立审阅:Reviewer 仅可读取冻结核查包、追溯主张、算术核对和提交结果,无 shell、文件写入、联网或委派工具;与主链各角色的工具权限分开。
284
+ - 独立审阅可以单独选择执行后端和模型(设置 → 独立审阅执行后端,可选 Opencode CLI 或内置引擎),与主链后端分开:用 Codex CLI、Claude Code 等尚未验证受限审阅的后端写报告时,也能开启事实核查、完成独立审阅并正式交付。选择在建任务和排队时随任务冻结,之后修改设置不影响已排队的任务。`briefloop serve --backend` 也可选择已接通主链的内置引擎。
285
+
286
+ ## 0.22.3
287
+
288
+ - Word 导出合并可识别的内部来源索引,只保留面向读者的来源列表;来源标题使用可点击的原文超链接。不能可靠识别的业务表格保持原样。
289
+ - 更新通用及定制模板的 Word 缓存身份,已有报告再次导出时使用新的来源呈现;保留历史文件。
290
+
291
+ ## 0.22.2
292
+
293
+ - 首页和新建报告提供紧凑研究深度、事实核查与 WikiSkill 控件;默认执行上限 60 分钟,深度研究默认目标 10,000 字、上限 12,000 字,保留用户明确篇幅。
294
+ - 同时生成报告数默认 4,可在设置中调整;Scout 并发独立调整,冻结计划不再受较低预设限制。排队等待与执行时间分别展示。
295
+ - 新报告生成期间显示独立等待页,版本选择器列出排队和生成中报告;已有稿件仍可切换查看。
296
+ - 核查与评分面板轮询保留已有内容,相同结果不重建,旧版本响应不覆盖新版本。
297
+
298
+ ## 0.22.1
299
+
300
+ - 修复桌面后台启动 OpenCode 时继承桌面生命周期输入管道、导致服务启动超时的问题;OpenCode HTTP 服务使用独立的空输入,桌面退出检测和所属进程回收继续保留。
301
+ - 包含下方 0.22.0 的多渠道搜索、报告时间范围及任务进度改进。Python、CLI、Mac 和 Windows 使用同一冻结提交及同一份后端 wheel;实际渠道以发行页工件为准。
302
+
303
+ ## 0.22.0
304
+
305
+ Python / CLI / Web 包已上传 PyPI;桌面候选验收发现 OpenCode 启动问题,未正式发行桌面包,由 0.22.1 修复后接续。
306
+
307
+ - 新工作区默认 Tavily 优先并允许宿主自带搜索补充;新增智谱搜索 Key 与引擎选择,博查和智谱均由用户主动启用。已有任务保持冻结搜索策略。
308
+ - 搜索支持首选、允许的补充渠道和宿主原生搜索;可主动检查跨市场覆盖或仅按缺口补查,策略随报告冻结。
309
+ - 新增博查中国市场网页搜索及本机 Key 设置,与 Tavily、DuckDuckGo 共用搜索预算和 URL 去重。
310
+ - 研究预算可查看渠道、用途、耗时及失败状态;来源页增加发现渠道筛选。移除尚无专门接入的公众号、小红书选项,不将搜索摘要标成全文或事实核实。
311
+
312
+ - 新建报告从系统时钟冻结截至日期、时间范围与时区,页面可预览并修改;定时报告每期重新计算相对时间。Tavily 检索携带冻结日期范围,写作与审阅区分当期变化与历史背景。
313
+ - 我的报告增加阶段、实际耗时、成功与失败搜索、已保存材料、研究轮次、审阅与修订进展。已有稿件可提前打开;停止、恢复和历史失败记录沿用原任务,不显示虚构完成百分比。
314
+ - Antigravity 无界面报告任务获得明确的长任务超时配置;超时或仅有部分输出时保留实际错误,避免误报成功。
315
+
316
+ 使用方式见 [搜索渠道与来源](docs/使用指南.md#搜索渠道与来源)、[桌面安装与更新](docs/桌面安装与更新.md)。安装包仍未签名或公证;搜索渠道需有相应凭据或宿主能力,服务额度与费用以账号实际情况为准。
317
+
318
+ ## 0.21.1
319
+
320
+ 本节记录源码变更;各渠道发布状态以发行页实际工件和版本核验结果为准。
321
+
322
+ - Antigravity 支持通过原生 `view_file` 读取对话图片;工具名称、失败详情和无正文错误在对话中可见,公开错误输出统一遮蔽凭据。
323
+ - Antigravity 权限提供默认、全机访问、Turbo 与自定义预设,保留已有终端沙箱及适用的逐工具规则;无界面模式下的拒绝会明确显示,用户可调整规则后重发。
324
+ - 复制消息或来源链接时,浏览器拒绝异步剪贴板 API 后尝试本地回退,并恢复原输入焦点。
325
+ - Mac 应用内更新改用 ZIP 与 blockmap,复用已校验的同格式缓存下载差分;DMG 继续用于首次安装。差分不可用时回退到完整校验下载,首次 ZIP 更新仍可能全量下载。
326
+ - Mac 安装前检查 ZIP 路径、应用身份与目标版本,准备 Finder 中的应用替换目录。当前仍由用户替换应用并重新打开,不宣称静默安装或已签名、公证。
327
+ - 修复 OpenCode 进程退出测试的终态事件竞态,避免后台正常补写终态事件被误判成额外运行。
328
+
329
+ 使用说明见 [模型与权限](docs/使用指南.md#模型与权限)及 [桌面安装与更新](docs/桌面安装与更新.md)。本版不新增事实核查能力;其真实运行的质量结论仍需独立审阅。
330
+
331
+ ## 0.21.0
332
+
333
+ - 新增快速、标准和深度研究档位;深度研究预排四轮,逐轮交接发现与追问,保存已登记来源与定位。网页、对话和 external 请求将档位绑定到任务,恢复时不改用当前设置。
334
+ - 新增 DuckDuckGo 免搜索密钥入口,与 Tavily 共用受控搜索预算及失败分类。模型费用仍由所选宿主与账号承担。
335
+ - 新增可选独立事实核查:对绑定正文的公开主张补查中性与反证来源,记录范围内支持、矛盾、证据不足或未知候选;独立 Reviewer 再核对。执行状态与事实判断分开,旧结果不能冒充修改后版本的结论。
336
+ - 修正核查排队顺序:最终审阅与一次自动修订等待核查完成或明确失败,防止首轮审阅遗漏晚到结果;取消报告同时停止关联核查,失败保留草稿。
337
+ - 核查结果与阶段收束原子保存,拒绝取消后的迟到结果;定时计划保存时确定核查开关,工作区默认变化不会无感增加核查。统一核查任务名称与实际运行状态显示。
338
+ - 整合 0.20.4 的首页定时报告、预设与自定义频率及 WikiSkill 配置冻结;保留桌面差分更新。
339
+
340
+ 各平台提供的版本以发行页实际工件为准。使用方法见 [深度研究与事实核查](docs/深度研究与事实核查.md)。
341
+
342
+ ## 0.20.4
343
+
344
+ - 首页新增定时报告管理,支持每日、每周、每月预设及自定义间隔,显示时区与下次执行时间,可编辑、暂停、立即运行、停止本次及查看成稿。仅工作区服务运行时执行,重启跳过离线时点,同计划不重叠运行。
345
+ - 每期按执行时设置冻结宿主、模型和当前启用技能;用户反馈复用 WikiSkill 学习链,过去报告保留原技能绑定。
346
+ - Mac 更新可复用已校验的本地 DMG 缓存,按块下载并校验完整文件;无法复用或校验失败自动转全量。Windows 明确启用 NSIS 差分更新。节省比例取决于版本间实际变化,首次无缓存仍需全量。
347
+ - 下载入口和更新通知按实际发布工件提供版本。
348
+
349
+ ## 0.20.3
350
+
351
+ 2026-09-13 发布;安装包、PyPI 和更新入口以实际渠道提供的版本为准。
352
+
353
+ - 统一发行检查要求桌面后端与同一份发行 wheel 的 SHA-256 一致;导入的跨平台检查失败不会被相同版本号覆盖成通过。
354
+ - 纳入下方 0.20.2 的运行时卡片改进,并接入 DeepSeek Harness、Antigravity 和 Pi 的原生会话;聊天中可选择宿主实际支持的权限。模型、账户可用性及受限审阅能力仍以实际宿主为准。
355
+ - 修复桌面主进程异常退出后的后台归属清理;停止时先保存已接纳的本地修改,再取消外部 MCP 调用。工作区切换先检查目标,启动失败时提供恢复路径;桌面一次管理一个活动工作区。
356
+ - OpenCode 服务绑定启动它的 Python 进程;macOS/Linux 上父进程被强制结束后回收所属服务及进程组,Windows 沿用所属 Job 清理。不按程序名称清理用户的其他 CLI。
357
+ - OpenCode 与 Codex 后台按需启动,无活动回合、子任务或在途配置请求时空闲 30 秒回收;保留已保存的原生会话供下一回合恢复。OpenCode 模型列表缓存命中时不重新启动服务。
358
+ - 通用 CLI Bridge 空闲 30 秒释放,活动调用和会话事件订阅保留连接;退出时清理它启动的模型目录探测与执行子进程。网页空闲/隐藏时降低轮询频率,回到前台立即刷新,慢请求不重叠。
359
+ - 后台任务队列空闲时逐步降低查库频率,同服务入队后立即唤醒;其他进程提交保留最多 5 秒的发现间隔。独立 CLI 服务不会因为关闭网页或长时间无操作而自动停止。
360
+ - 修复运行时发送背压、进程死亡后会话不结束,以及子任务同名工具的新调用被进度去重遗漏的问题;无变化的心跳不重复写成进展。
361
+ - 相同 Word 输入的并发导出共用一个任务,文件缺失或损坏可重新制作。修复富文档行业报告的重复首标题、图表来源遗漏与非法图片导致保存状态无法恢复的问题。
362
+ - Markdown 导入需要明确确认转换;普通保存保留富文档的颜色、表格、图片和引用,历史版本仍可查看。上传前显示文件大小限制,超限不先读入整份附件。
363
+ - 修复软性要求的条款 ID 被误当成硬性要求;事实矛盾继续按事实问题处理。审阅发现可引用本次固定包内的来源陈述,来源陈述不会因此自动成为正文已核实的主张。
364
+ - 学习比较核对冻结的内容方法与评价条件;初始化中断可恢复,过滤后没有可用材料的案例说明原因,不记为候选技能收益。
365
+ - 损坏 PDF/XLSX 的已知解析错误定位到对应材料;连接器配置损坏时保留原文件和诊断,历史稿件仍可查看。任务结束释放所属连接器资源。
366
+ - 研究轮次变更、企业背景事实与冲突登记采用原子提交,避免并发覆盖和中断留下无法处理的记录。
367
+ - 补齐日志凭据遮蔽、连接器动态加载环境变量限制,以及私有 GET 接口的跨站来源检查;正常网页下载和本地外部客户端沿现有接口使用。
368
+ - 连接测试保留独立历史入口,错误和取消结果可查看;普通最近会话不再混入连接测试。统一聊天工具栏文字样式。
369
+ - 尚未选择模型时仍可查看和下载已有报告、读取来源及打开设置;开始新对话或新报告时再确认执行模型。
370
+
371
+ ## 0.20.2 — 源码改动,未独立发行
372
+
373
+ 以下改动已合并源码,将随 0.20.3 一同发行;没有单独的 0.20.2 PyPI 包或桌面安装包。
374
+
375
+ - 运行时卡片加入本地品牌图标、简介、检测版本和当前模型;图标随应用分发,离线可见。未安装运行时展开为双列卡片,窄屏自动变成单列。
376
+ - 去掉首页聊天框重复的“当前:runtime”,保留可操作的宿主选择器和回合执行记录。
377
+ - 修复 Kilo、Kiro、Vibe 已有 ACP 适配却被可选宿主名单阻挡的问题;安装检测、协议适配和实际调用结果分别呈现,不把模型目录当作账号调用成功。
378
+ - 更新失败分别显示检查失败、下载未完成、安装未完成;检查失败不附带旧版本目标,重试按失败阶段执行,保留具体错误与限流恢复时间。
379
+
380
+
381
+ ## 0.20.1 — 2026-09-13
382
+
383
+ 本次发布 Python / CLI / Web 包;桌面源码版本同步,未重新发行 Mac / Windows 安装包。
384
+
385
+ - 新增工作区动态与侧栏未读红点:报告任务开始、完成和失败,用户模板、Wiki 内容及可用版本更新。支持查看对应页面、全部标为已读,刷新或重开后保留已读状态,重复事件不重复提醒。
386
+
387
+ - 新增跨平台版本核对:从 pyproject.toml 读取目标版本,比较源码、实际 CLI、Mac/Windows 程序及其内置 wheel、PyPI 最新版和包哈希;缺少平台证据不算一致。
388
+ - 统一 App、网页版与 CLI 的实际后端版本、安装来源和 PyPI 更新检查;桌面更新限流显示恢复时间并避免重复请求。
389
+
390
+ - 接通证券研究内容方法及券商模板建议,支持事件点评、公司研究和行业跟踪;核对指标口径、预测类别与估值输入。默认模板移除泛化免责声明和固定评级占位,保留具体风险分析。
391
+ - 修复 WPS 表头单独留在上一页页底;内置模板导出清理旧 Courier 声明,保留用户模板字体。新版生成使用新导出指纹,历史 Word 文件保持原样。Windows WPS 的该字体提示已验证消除;Mac WPS 仍可能提示缺失字体。
392
+ - Word 表格继承模板单元格段落样式,列数与模板样例不同时按内容分配宽度,并保持单行完整,避免长指标挤窄或跨页断行。
393
+ - 修复列表结尾报告首次聚焦时自动产生空段落并误保存用户修订的问题。
394
+
395
+ - 接通会议纪要内容方法和内置纪要模板建议:依据实际转写或笔记区分讨论、决议、建议、改口与未定事项;无会议记录时阻止生成,材料提示同步说明输入要求。方法随任务保存,独立评价核对负责人和期限依据。
396
+
397
+ - 同一对话可显式选择下一回合宿主并回切,交接可见历史,保留原生会话归属和已冻结任务;详见 [对话宿主切换](docs/对话宿主切换.md)。
398
+ - 新增 WorkBuddy 等本地 Agent 使用的外部 CLI 与 Skill:只读发现已有服务、提交和查询报告、读取材料与稿件、按 base_version 保存富文档修订、导出并校验下载指定版本 Word。写请求通过稳定 request_id 重试,复用原任务和原版本。
399
+
400
+ ## 0.20.0 — 2026-09-13
401
+
402
+ - 新增 Electron 桌面 App:原生工作区选择、Word 另存、保存后退出、所属服务停止与重开;提供 macOS Apple Silicon DMG 和 Windows x64 EXE。
403
+ - 精简桌面安装内容:复用 Electron 内置 Node,检测本机 Python 3.11+,使用 App 专属虚拟环境安装依赖;缺少 Python 时给出安装入口。沿用普通安装包,不新增在线安装器。
404
+ - 设置新增版本更新:检查官方发布、下载进度和用户发起安装;安装前保存编辑并停止所属任务,失败保留错误及恢复路径。
405
+ - CodeBuddy 接入原生 ACP:宿主模型目录、自定义模型 ID、对话续接、文件授权、读写与取消。受限 Reviewer 仍要求宿主实际支持。
406
+ - Codex 官方 OpenAI provider 的适用配置可选择 Fast;配置随消息、任务和角色模型保存,恢复继续沿用原配置。
407
+ - 通用报告与商业报告接通独立内容方法,包含行业周月报、工作进展周报和决策分析;实际方法版本随报告保存,Word 版式单独选择。
408
+ - MCP 材料按报告明确选择、冻结授权与预算;实际读取保存原件、回执和来源。修复旧凭据格式与可选空目录影响设置使用的问题。
409
+ - 执行时限支持“不限时”,保留手动取消。对话显示提供商错误及实际重试状态,报告等待权限时提供任务对话入口。
410
+ - 修正评价条款引用校验、行动建议被误判为既成事实的问题;区分原稿、当前修订与历史导出版本,修复保存与运行状态更新。
411
+
412
+ 本版仍不提供同对话跨宿主切换、WorkBuddy 外部任务入口,或会议纪要/证券研究的专门内容流程。八类 Word 版式不等于八条内容流程。0.20.0 默认桌面安装包未签名,Mac 包也未公证;首次安装的系统提示及处理步骤见 [桌面指南](docs/桌面安装与更新.md)。
413
+
414
+ ## 0.19.0 — 2026-09-12
415
+
416
+ - 首次使用可在空工作区导入合成周报,直接查看、编辑、导出;标明未调用模型、未评分,关闭自动学习,保留模型选择。并发导入和中途中断重试共用同一份示例。
417
+ - 数值检查真正限定原文行、PDF 页或结构化证据位置,不再在整份来源中借用摘录;定位不明仍显示未检查,已确认数值错配阻断正式交付。主体、期间、口径仍需审阅。
418
+ - 排队时冻结并发上限,研究计划与实际提示词使用同一快照。Node 可通过 BRIEFLOOP_NODE 指定;缺少 Node 时保留 Codex / Opencode 原生发现。
419
+ - 修复空工作区状态栏异常、编辑含引用报告时被链接空属性阻断保存,以及显式 runtime 被未选择默认模型误拒绝。
420
+ - 新增 350/500 字速览预设;统一使用指南中的研究预算和模板名称。
421
+ - PyPI 元数据补齐 README、许可证和项目链接;wheel/sdist 携带原始第三方许可,前端按实际 bundle 输入生成许可清单,缺许可构建失败。CI 检查产物漂移并运行全部前端行为检查。
422
+ - 增加产品定位、已知边界、数据流向、贡献与安全反馈说明;不把交付条件、一次学习拒绝或合成测试写成事实正确率与学习净收益保证。
423
+
424
+ - 同稿换版式导出:导出菜单可选任一就绪模板,对已保存版本按新模板重排生成 Word;正文不变,导出指纹随版式区分。
425
+ - 「已保存版本检查」新增版式检查:标题层级中断、空标题、缺表头行的表格,确定性报告、不阻断交付;检查结果同时进入独立审阅输入包。
426
+ - 行业定期报告与内置研报版式的 Word 输出新增目录页:标题写入稳定书签,提供可点击目录与缓存文本,支持更新域的阅读器可刷新页码;通用简报输出不变,导出身份号升级以刷新缓存。
427
+ - 内置版式矩阵随包分发:7 类文体(通用/商务/学术/年报/合同/纪要/券商研报)各 5 套主题(品牌绿/极简蓝/珊瑚红/石墨黑/典雅灰),加 1 套固定公文版式,共 36 套;公文按 GB/T 9704 固定红头与字体只出正典一格。模板页为画廊布局:文体卡片(图标与适用说明)+ 配色点选主题,底部「已选」栏与「使用该模板」确认后设为默认并跳转新建表单;设置页下拉按文体分组。工作区首次打开自动注册;标题按章节名匹配模板样式(含序号归一),不再要求手工锚点。
428
+
429
+ ## 0.18.0 — 2026-09-11
430
+
431
+ - 公开发布身份统一:Python 分发名 `briefloop-local` → `briefloop`,CLI 仍为 `briefloop`。
432
+ - 补丁版 WikiSkill 内联为本发行版的顶层 `wikiskill` 模块,移除未发布的外部依赖;`pip install briefloop` 自包含可用。
433
+ - 同步 README、升级说明与使用指南;修正“已发布到 PyPI”与实际状态不一致的说明。
434
+ - GitHub 仓库简介、主页与 topics 更新为多运行时 Agent 工作台定位。
435
+
436
+ ## 0.17.1 — 2026-09-10
437
+
438
+ - 接入 Codex、OpenCode、Claude、Kimi、Hermes、Reasonix、MiMo,统一模型目录与手填入口。
439
+ - 自定义 API 显式支持 Chat Completions、Responses、Anthropic Messages,保存与测试分开。
440
+ - 独立设置页面,兼顾浏览器窗口和未来 Electron 的共享界面。
441
+ - 报告编辑、版本绑定、证据追溯、独立审阅与 Word 导出。
442
+ - 执行采用用户设置的时限,移除额外的模型测试时限。
443
+ - 添加合成周报示例;本地截图、报告、工作区和凭据不进入源码发布。
444
+
445
+ ## 0.17.0 — 2026-09-09
446
+
447
+ 本版将原工作流工具升级为本地 Codex Agent 工作台。
448
+
449
+ ### 新增
450
+
451
+ - 持久对话、文件附件、消息排队与中途补充、公开工具和子 Agent 活动、上下文用量。
452
+ - 对话归档、回收站、恢复与批量归档已结束对话;相关报告和来源保留。
453
+ - 所有 Scout 共用的工具侧研究预算:Tavily 搜索尝试、候选 URL、全文来源 URL,含用量与耗尽提示。
454
+ - 明确的正文目标字数、上限、自定义数值与已保存稿件计数。
455
+ - Tavily Search/Extract 及 Scout 专属技能,保留原始响应并标明提取来源。
456
+ - Evaluator、Wiki Maintainer、Skill Proposer 的独立配置,以及待验证候选的可见状态。
457
+
458
+ ### 调整
459
+
460
+ - 单仓库执行 `./start.sh`,自动安装随项目提供的 WikiSkill wheel。
461
+ - 模型 ID 与 Codex Responses provider 可自行填写,不限制为 OpenAI 型号。
462
+ - Scout 使用独立输出位置;原文支持范围读取和同轮 URL 复用。
463
+ - Evaluator 优先加载稿件引用来源,移除重复嵌套评价及试验稿的重复单稿评分。
464
+ - 本版统一中文版文档,国际化和行业 Deep Research 延后。
465
+
466
+ ### 兼容边界
467
+
468
+ 旧历史和标签保留,旧工作区不自动迁移。请保留旧目录并新建工作区。本版以 macOS 本地路径为已验证范围。发布包不包含用户工作区、报告、凭据或私有计划;开发验证不调用真实模型或 Tavily。
469
+
470
+ ---
471
+
472
+ ## 历史版本记录(旧架构,保留原文)
473
+
474
+ # Changelog
475
+
476
+ All notable changes to the multi-agent-brief-workflow project will be documented in this file.
477
+
478
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
479
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
480
+
481
+ ## [Unreleased]
482
+
483
+ ### Changed
484
+
485
+ - Removed every issuer identity from packaged defaults: the solar watchlist
486
+ now ships global peers only and `briefloop new solar-stock-periodic`
487
+ requires an explicit `--core-ticker` (optional `--core-name`), so the
488
+ subject search task is derived from Human input instead of a packaged
489
+ constant. The issuer-named implications section intent is now
490
+ `core_implications`.
491
+ - Renamed the issuer-named workbook profile to `solar-weekly-v1`. The
492
+ parser matches the subject detail sheet by its `周明细` suffix and resolves
493
+ the subject trend column without any issuer name. Fresh workspaces only.
494
+ - `scripts/check_public_safety.py` now enforces case-insensitive default
495
+ banned identity terms over tracked files (CI and pre-push), so packaged
496
+ defaults cannot regain a real-issuer identity.
497
+
498
+ ### Added
499
+
500
+ - Added an experimental CLI surface gate: the `experiments`, `eval`, `new`,
501
+ `packs`, `validate-report-spec`, `extract`, and `quality` commands are
502
+ hidden from default help behind `BRIEFLOOP_EXPERIMENTAL=1` while staying
503
+ callable for existing scripts.
504
+ - Added the experimental `multi_agent_brief.evaluation_v2` agent-rollout
505
+ evaluation stack: strict case contracts with per-defect blocking levels and
506
+ derived case-level blocking, packaged corpus loading with production
507
+ composition thresholds, the paired reward
508
+ `R = defect_recall * true_negative_rate` (warning-level detections count
509
+ toward recall), an injectable-rollout split runner, and an offline
510
+ findings-to-outcome mapping for recorded quality-gate reports. The corpus
511
+ ships as an empty skeleton with 16 generator specs ported from the legacy
512
+ fixtures; superseded by the entries below (the adapter and the measured
513
+ baseline have since landed). Added `docs/claims.md` consolidating the public claims boundary,
514
+ including the defect-detection NOT MEASURED line (since measured; see the
515
+ next entry).
516
+ - Added the regenerated 80-case packaged detection corpus (deterministic generator, construction-time oracle) and the real codex auditor rollout path: `briefloop eval run` drives concurrent per-case rollouts with retry and appends reward-ledger records pinned to corpus, `agent_roles.yaml`, and reporting-contract digests. First measured baseline (2026-09-03): recall 1.000 in all three val runs, mean reward 0.931, spread 0.063; the fail-closed reward gate stays unrationalized while spread exceeds the 2.5-point threshold, and the defect-detection claim in `docs/claims.md` is now MEASURED with numbers.
517
+
518
+ Pre-v0.16 architecture slices (not yet a released version): the
519
+ reader-truth and evidence-balance package plus structured claim metrics
520
+ for Solar Stock Periodic.
521
+ Fresh workspaces only: the frozen run contract changes and existing
522
+ workspaces are not guaranteed to keep running.
523
+
524
+ ### Added
525
+
526
+ - Finalize render now derives the reader brief with `[S#]` citation labels,
527
+ a real source appendix, output-relative chart paths, and a deterministic
528
+ compliance footer; chart images render correctly across markdown, docx,
529
+ and the static HTML view.
530
+ - `output/brief.docx` became a Store reader artifact produced whenever the
531
+ frozen `output_formats` include docx (requires the `docx` extra; missing
532
+ dependency fails closed).
533
+ - Deterministic reader-skeleton gate: pack-frozen
534
+ `required_section_intents` must map to sections (or explicit coverage-gap
535
+ disclosures); the catalyst calendar needs a post-report date; the
536
+ earnings/valuation section must reference the core ticker and a frozen
537
+ multiple when peer multiples exist.
538
+ - Price-vs-narrative divergence gate: a core-subject one-week move beyond
539
+ the frozen threshold (solar default 10%) must be stated in a
540
+ market-reaction section — bound to the core ticker, direction, and
541
+ magnitude within tolerance, with snapshot provenance — and backed by a
542
+ risk-type claim or an explicit no-evidence disclosure.
543
+ - Scout aspect-bucket diagnostics: pack-frozen `required_claim_aspects`
544
+ (solar: earnings growth, cash flow/dilution, guidance risk, price
545
+ reaction) surface an uncovered aspect as a non-blocking warning
546
+ finding; aspect tags do not bind to the core company, so this is a
547
+ visibility diagnostic rather than a proof of balance.
548
+ - Chart placement contract: bound charts must sit inside their bound
549
+ sections, manifest charts may not be silently omitted, and the subject
550
+ price/volume chart carries deterministic event-day markers
551
+ (`market-chart-png-v2`).
552
+ - Pre-submit content lint: analyst/editor invocation validation runs the
553
+ same deterministic rule bodies read-only, surfacing violations before
554
+ accept instead of consuming the single preauthorized gate-repair cycle.
555
+ - QoQ-contrast slice: claim drafts may attach a subject-scoped structured
556
+ metric limited to five cumulative metrics; Python derives Q1 = H1 - Q2
557
+ under strict same-subject/metric/unit/year uniqueness (ambiguity is a
558
+ diagnostic, never a guess). The one blocking rule requires a citing
559
+ paragraph headlining a sign-conflicting YoY to show the derived QoQ
560
+ with the correct sign; all other structured-metric issues are visible
561
+ warnings. Dated upcoming catalysts render as a Python-owned calendar
562
+ table in the final markdown/docx/html (post-report-date events only,
563
+ explicit empty state); the calendar gate and hand-written calendars
564
+ are gone.
565
+
566
+ - The Tavily acquisition matrix emits stderr progress lines (per search
567
+ task, extract phase, backfill selection); stdout JSON is unchanged.
568
+
569
+ ## [0.15.3] — 2026-08-14
570
+
571
+ ### Added
572
+
573
+ - Added fresh-only schema 19 and strict `market_data_snapshot.v2` for Solar
574
+ Stock Periodic, including workbook identity, adjusted-close history,
575
+ corporate actions, FX, valuation fields, event reactions, gaps, and conflicts.
576
+ - Added profile-bound ingestion for the solar weekly XLSX layout. Offline
577
+ `ingest` keeps verified workbook cells authoritative; workbook-aware `fetch`
578
+ uses Yahoo only to fill missing securities, history, FX, and fields.
579
+ - Added paired Solar workspace `--report-window-start/--report-window-end`
580
+ options so a Human can freeze the workbook's exact reporting period before
581
+ Store initialization.
582
+ - Added Store-bound primary/overseas comparison tables, an event timeline,
583
+ seven deterministic PNG charts, a JSON read model, a hash-bound chart
584
+ manifest, and a fifth Market Data tab in the local HTML report.
585
+
586
+ ### Changed
587
+
588
+ - Solar market-data Gates now block missing required series, window mismatch,
589
+ blocking workbook gaps, and conflicts. Embedded workbook charts remain
590
+ display-only, and structured market data does not become Claim Ledger
591
+ evidence or prove event causation.
592
+ - Product-owned workbook outputs (latest price, period return, USD conversion,
593
+ and USD market cap) are recomputed from frozen cells and FX inputs; formula
594
+ caches are comparison-only and mismatches remain visible blockers.
595
+ - The DOCX renderer now embeds bounded local PNG/JPEG Markdown images while
596
+ rejecting absolute, escaping, SVG, missing, unsupported, and oversized image
597
+ paths.
598
+
599
+ ## [0.15.2] — 2026-08-10
600
+
601
+ ### Removed
602
+
603
+ - **Breaking:** the legacy JSON control-plane runtime is deleted. The
604
+ `state`, `gates`, `feedback`, `repair`, `improve`, `provenance`, `controls`,
605
+ `approval`, `release`, `inputs`, `semantic-support`, `audit`, `finalize`,
606
+ `deliver`, `analysis-blocks`, `claude`, `hermes`, and `workbuddy` CLI command
607
+ modules are removed, along with their JSON control files, role skills,
608
+ generated platform role agents (`.claude/agents/`, `.codex/agents/`,
609
+ `.opencode/`, `.codebuddy/`), the five-verb writer command (`/briefloop`),
610
+ and the Hermes / OpenCode / CodeBuddy / WorkBuddy runtime assets.
611
+ - Workspace authority now classifies only fresh / sqlite / invalid_sqlite; a
612
+ legacy JSON-only workspace is treated as fresh and must be bootstrapped to
613
+ SQLite. The active runtime is the packaged Codex ControlStore kit
614
+ (`briefloop runtime install --runtime codex`).
615
+
616
+ ## [0.15.1] — 2026-08-10 (prepared release target)
617
+
618
+ This prepared release target is an experimental, fresh-only extension of the
619
+ SQLite/Codex runtime. It is not a claim that the system proves report quality,
620
+ investment outcomes, or live provider reliability.
621
+
622
+ ### Added
623
+
624
+ - Added Store-qualified AI Second Opinion / post-final review for a finalized
625
+ report: multiple Human-authorized assessment generations, exact result
626
+ selection, archive-bound replay/projection, append-only dispositions, and
627
+ Human-originated observations with separately approved guidance.
628
+ - Added schema 18 (`0018.sql`) for the experimental `solar-stock-periodic`
629
+ ReportPack. A frozen plan contains 20 independent discovery tasks: 11 listed
630
+ companies, 5 event-only entities, and 4 industry/policy/financing themes.
631
+ - Added the multi-search Tavily acquisition contract and immutable bundle
632
+ records. Each task can request up to 20 advanced Search results; eligible
633
+ URLs are Batch Extracted in groups of 20; an under-covered task can receive
634
+ one deterministic 30-day targeted backfill; the safety envelope is 800
635
+ unique URLs.
636
+ - Added ReportPack, template, and policy-profile metadata for global-solar
637
+ capital-markets weeklies, including required sections for equity comparison,
638
+ events, policy/input signals, capacity/assets, sentiment, and core-company
639
+ implications.
640
+
641
+ ### Changed
642
+
643
+ - Tavily no longer executes the old single reconstructed industry query or a
644
+ five-URL product cap. Runtime execution follows the Store-frozen task matrix
645
+ in order; Search snippets remain discovery-only and only successful,
646
+ non-empty Extract content can enter Intake.
647
+ - Exact replay never redials and failures never auto-retry. Partial task
648
+ failures remain visible with per-task and per-URL outcomes instead of being
649
+ reported as “no events”.
650
+ - The source-provider role is proposal-only. Provider I/O, credentials,
651
+ receipts, frozen artifacts, and Store writes remain owned by the deterministic
652
+ runtime host.
653
+ - Public skills, README files, architecture/migration/support docs, and the
654
+ version matrix now describe the v0.14.0 → v0.15.1 release-target boundary
655
+ and the schema-18 fresh-only rule.
656
+
657
+ ### Fixed
658
+
659
+ - Fixed Reader Review direction admission and exact archive-bound replay paths,
660
+ including zero-finding, failed, and not-run report states.
661
+ - Fixed Human-observation Review Session lifecycle/error reporting so stale or
662
+ disconnected browser pages explain that the session must be reopened instead
663
+ of presenting an opaque “record failed” message.
664
+ - Fixed projection of real Reader Review scopes and units: completed
665
+ no-finding checks, provider-unable checks, and per-call evidence are shown
666
+ without falling back to the obsolete nine-dimension placeholder grid.
667
+
668
+ ### Limits and fresh-only boundary
669
+
670
+ - Existing schema-17 or older SQLite workspaces are not migrated or upgraded in
671
+ place; create a fresh schema-18 workspace for `solar-stock-periodic`.
672
+ - The ReportPack reserves the market-data snapshot boundary, but this target
673
+ does not ship a YahooMarketDataAdapter. It must not invent prices, returns,
674
+ FX, or valuation multiples when a verified snapshot is absent.
675
+ - Live Tavily usefulness, source coverage, provider reliability, cost, and
676
+ acquisition-to-`finalized_local` performance remain **NOT MEASURED**.
677
+ - Solar Stock Periodic and AI Second Opinion remain Experimental and advisory;
678
+ neither changes Gates, finalization, delivery, publication, or Core
679
+ next-action authority.
680
+
681
+ ## [0.14.0] — 2026-07-22
682
+
683
+ ### Added
684
+
685
+ - Added an Experimental one-shot loopback initialization wizard through
686
+ `briefloop init <workspace> --web`. It uses the same strict ControlStore
687
+ bootstrap path as terminal initialization and shows the real receipt.
688
+ - Added `briefloop quality html --workspace <workspace>` for a self-contained,
689
+ read-only three-page HTML export covering quality status, optional LAJ
690
+ advisory findings, and the honest unavailable state of the Improvement
691
+ Ledger. The pages contain no workflow or write authority.
692
+ - Rewrote the canonical and packaged Codex Skill around the SQLite-only
693
+ `CoreRunNextAction` protocol, Receipt-backed invocations, strict human
694
+ requests, and the distinction between `package_ready` and `delivered`.
695
+
696
+ ### Changed
697
+
698
+ - Codex implemented and tested the v0.14 engineering changes in scoped
699
+ branches; human maintainers authorized merges and this release. Codex output
700
+ did not approve itself or create product, research, or delivery authority.
701
+ - The SQLite ControlStore, accepted strict requests, Receipts, and ledger
702
+ relations are the sole runtime authority for new runs. Legacy control files
703
+ and report/status/Quality Panel exports are non-authoritative projections;
704
+ strict action, envelope, and human-request JSON payloads are revalidated
705
+ against the Store and are not authority by themselves.
706
+
707
+ ### Removed
708
+
709
+ - **Breaking (`fix!:`):** the Improvement Ledger / Memory file lifecycle
710
+ (`improvement/ledger.jsonl`, `improvement/memory.md`,
711
+ `improvement_memory_snapshot.md`) is retired. Its projection and per-run
712
+ freeze code lived in the stack LD2-3 deleted, so these files have no reader
713
+ or writer; existing workspace copies are inert. A Store-native Improvement
714
+ Ledger is MU-2 work. The support matrix moves the row from Supported to
715
+ Retired.
716
+ - **Breaking (`fix!:`):** the v1.0 RC readiness release gate is retired: its
717
+ scenario runner drove the
718
+ deleted legacy runtime-state stack, so the gate could not execute. The
719
+ `release.sh` v1.0 branch and the release checklist now require only the
720
+ pilot evidence gate, which is unaffected and still runs on every release
721
+ through `check_release_consistency.py`.
722
+ - **Breaking (`fix!:`):** LEGACY-DELETE-2-3 deletes the legacy JSON
723
+ runtime-state stack (`orchestrator/runtime_state/`, 30 modules) and its
724
+ dead consumer layer — `orchestrator/{handoff,run_integrity,timing,
725
+ recovery_state,run_archive}.py`, `controls/switchboard.py`,
726
+ `improvement/`, `feedback/`, `repair/`, `provenance/builder.py`,
727
+ `workbuddy/diagnose.py`, `product/release_approval.py`,
728
+ `quality_gates/state.py`, `experiments/` (MABW-080 tooling), and
729
+ `cli/start_commands.py` — 57 modules / ~39.8k lines. Typed rejections
730
+ (`runtime_command_unsupported` / `legacy_workspace_unsupported` /
731
+ `[run] runtime_adapter_unsupported`) remain live contracts on every
732
+ retired surface; the SQLite ControlStore stays the sole runtime authority.
733
+ - **Breaking (`fix!:`):** the `eval-cases` CLI (previously Supported) is
734
+ retired with its legacy-runtime evaluation driver; the command now fails
735
+ as an unknown argparse choice. Packaged fixture data under
736
+ `evaluation_cases/fixtures/` is preserved for the EF-1/EF-2 Store-native
737
+ evaluation rebuild.
738
+ - **Breaking (`fix!:`):** `experiments 080` tooling (previously Archived
739
+ Experimental) is retired with the stack; scorecard reproduction is
740
+ satisfied by git history and run archives. The `experiments laj` advisory
741
+ surface is unaffected.
742
+ - **Breaking (`fix!:`):** the retired D1 status/Quality Panel fold-in keys
743
+ `guidance_manifestation` and `support_wording` are removed from the public
744
+ projection contract. No supported Store-native writer or reader consumes
745
+ them.
746
+ - `status` legacy file projections that depended on the deleted stack
747
+ (artifact-registry interpretation, claim-support-matrix,
748
+ semantic-assessment-report, recovery, run-integrity, and timing sections)
749
+ are removed from the read-only legacy projection; SQLite workspaces keep
750
+ the full Store-native status projection.
751
+ - **Breaking (`fix!:`):** the Quality Panel `semantic_support` section now
752
+ reports a constant
753
+ `not_available`, because its only producer was the deleted status
754
+ projection. On SQLite workspaces — the sole supported authority — it
755
+ already did: the Store projection never carried that key, so there is no
756
+ capability loss on any supported surface. The section stays inert until a
757
+ Store-native producer lands. The `semantic_assessment_report.json` schema
758
+ and its reference validation are unaffected.
759
+
760
+ ## [0.13.0] — 2026-07-20
761
+
762
+ ### Changed
763
+
764
+ - **Breaking:** the SQLite ControlStore is now the sole runtime authority.
765
+ JSON-only workspaces are classified unsupported — there is no importer,
766
+ migration, dual read/write, or fallback. The Codex runtime host
767
+ (`briefloop run --workspace <path> --runtime codex`, followed by
768
+ `briefloop runtime next`, `invocation-start`, `invocation-accept|fail`, and
769
+ `apply`) is the active execution path, and deterministic source acquisition
770
+ executes only the initialization-frozen provider plan (post-initialization
771
+ reads of mutable `sources.yaml` are rejected).
772
+ - **Breaking:** retired JSON/operator public commands fail closed with typed
773
+ rejections (`runtime_command_unsupported` / `legacy_workspace_unsupported`)
774
+ and zero writes. LEGACY-DELETE tier-1 removes their handler layer, six
775
+ import-graph-unreachable modules (`core/previous`, `outputs/docx`,
776
+ `outputs/pdf`, `sources/coverage`, `experiments/schemas`,
777
+ `experiments/target_contract`), and three unreferenced scripts; parser
778
+ registrations are retained so the typed rejections keep working. The legacy
779
+ JSON runtime-state stack remains as declared internal debt tracked for
780
+ LEGACY-DELETE-2.
781
+ - **Breaking:** `sources decide` is retired by design; source discovery runs
782
+ through the runtime-host route. Finalize, approval, and delivery run as
783
+ typed Store actions through `runtime apply`; the public `deliver` command
784
+ forms have no user-reachable entry.
785
+ - **Breaking:** the supported Python floor is now 3.12. `requires-python`
786
+ moves from `>=3.9` to `>=3.12`, so the next release refuses to install on
787
+ Python 3.9-3.11. Setup and install scripts enforce the same floor at
788
+ preflight, probe versioned interpreters (`python3.14`/`python3.13`/
789
+ `python3.12`) when the unversioned `python3` is too old, and recreate an
790
+ existing venv whose interpreter is broken or below the floor instead of
791
+ reusing it. CI runs the full test suite on macOS and Windows with Python
792
+ 3.12 in parallel (pytest-xdist worksteal); Linux full-suite legs are
793
+ retired by explicit maintainer decision, while Linux install and CLI
794
+ smoke coverage remains.
795
+ - **Breaking:** runtime identity must now be explicit. Dedicated adapters inject
796
+ their fixed canonical identity, while generic CLI users pass `--runtime`.
797
+ New state accepts only `hermes`, `claude`, `opencode`, `codex`, `codebuddy`,
798
+ or `operator`; historical `auto` / `manual` / implicit `controls` manifests remain read-only until
799
+ an explicit reset starts a new canonical run and archives the old manifest.
800
+
801
+ ## [0.12.1] — 2026-07-14
802
+
803
+ ### Changed
804
+
805
+ - Bound the experimental WorkBuddy / CodeBuddy workflow to an explicit
806
+ two-phase permission model: checked-in role agents draft only their
807
+ handoff-assigned artifacts, while a command-capable main session re-reads the
808
+ handoff and runs deterministic BriefLoop CLI transactions. Missing main-session
809
+ command capability is a hard stop, and host-visible invocation of the exact
810
+ checked-in role is required before claiming role delegation.
811
+ - Added the repo-local Northstar product-governance Skill with bounded evals,
812
+ plus bilingual Architecture Reference v0.4.0 reading editions and a
813
+ deterministic source/render guard. The report remains a historical v0.11.12
814
+ snapshot; current architecture and support truth remain in the existing
815
+ status and support-matrix documents.
816
+
817
+ ## [0.12.0] — 2026-07-13
818
+
819
+ ### Changed
820
+
821
+ - Completion projection and WorkBuddy now expose canonical recovery action
822
+ vocabulary (`request_recovery_decision`, `rerun_from_stage`, and bound
823
+ finalize actions); delivery eligibility no longer implies delivery success,
824
+ which requires a current-run bound delivery outcome event.
825
+ - Rewrote the BriefLoop operator skill to the v1.0 RC operating contract
826
+ (`briefloop-operator-skill-v0.2.0`): delivery truth is `finalize_report.json`
827
+ plus the completion projection (`briefloop workbuddy diagnose --json`), never
828
+ file existence; supersede recovery marks downstream artifacts stale until
829
+ regenerated; agent artifact intake identity rules are documented as
830
+ fail-closed; the version matrix now separates "v1.0 RC Landed Surfaces" from
831
+ "Pending Before v1.0" (intake normalization, pilot evidence satisfaction).
832
+ Runtime command surfaces (`/briefloop`, `/mabw`, `/generate-brief`, OpenCode
833
+ adapters) were updated to the transactional finalize + delivery-truth flow,
834
+ and the Claude skill wrapper became a model-invoked background protocol
835
+ (`user-invocable: false`) so `/briefloop` resolves to the writer command.
836
+ - Rewrote the experimental WorkBuddy Skill (`.agents/skills/briefloop-workbuddy/`)
837
+ in Chinese for its WorkBuddy first-user audience, preserving all CLI command
838
+ strings, Run Card fields, role names, and control boundaries; skill pack
839
+ tests now assert the Chinese contract.
840
+ - Archived superseded documentation (old MABW architecture references, dated
841
+ 2026-06-11 memos, one-off design notes) under `docs/archive/` with an
842
+ archive policy README; current docs no longer link archived material as
843
+ implementation truth.
844
+ - Made finalize promotion transactional: reader output is rendered and checked
845
+ as a candidate before `output/brief.md` or `output/delivery/` are updated, and
846
+ successful promotion records the delivery artifacts and their sha256 hashes in
847
+ `finalize_report.json` (the single delivery-truth record; `deliver` and
848
+ finalize-complete verify those artifacts). Failed reader-clean finalization
849
+ writes a fail report but leaves any prior delivery bundle unchanged.
850
+ - Changed the PyPI / package-index distribution name from
851
+ `multi-agent-brief-workflow` to `briefloop` so the eventual published package
852
+ can support `pipx install briefloop`. The Python import package remains
853
+ `multi_agent_brief`, the `multi-agent-brief` console script remains a
854
+ compatibility entrypoint, and first-user docs still must not claim
855
+ package-index install support until a real PyPI artifact is published and
856
+ smoke-tested.
857
+ - Rewrote the experimental WorkBuddy Skill path to use `--runtime codebuddy`
858
+ and checked-in CodeBuddy-compatible role agents for full workflow runs,
859
+ instead of defaulting to the host-agnostic operator handoff. The main
860
+ WorkBuddy/CodeBuddy session still owns deterministic CLI transactions; role
861
+ agents only draft handoff-assigned artifacts and this does not add gate
862
+ authority, delivery approval, release authority, semantic proof, or
863
+ output-quality proof.
864
+ - Added experimental Gmail delivery through the optional `gws` CLI:
865
+ `briefloop deliver --workspace <workspace> --target gmail --channel draft
866
+ --recipient <email>` creates a Gmail draft, while `--channel send`
867
+ explicitly sends the message. Both paths record redacted delivery events and
868
+ do not attach audit/control files, approve delivery, authorize release, or
869
+ prove semantic truth.
870
+ - Bound experimental Semantic Assessment Reports to checked input artifacts
871
+ (`audited_brief`, Claim Ledger, Atomic Claim Graph, and Evidence Span
872
+ Registry) with relative paths, hashes, sizes, freshness projection, and
873
+ human-adjudication record linkage. Legacy unbound reports remain readable as
874
+ advisory projections, and this does not add Claim-Support Matrix writes, gate
875
+ authority, delivery approval, release authority, or semantic proof.
876
+ - Added a deterministic CodeBuddy adapter smoke guard that validates
877
+ source-clone `.codebuddy` Skill/agent assets and a fresh `--runtime codebuddy`
878
+ handoff. The smoke is release-readiness coverage only; it does not launch
879
+ CodeBuddy, prove delegated runtime execution, approve delivery, authorize
880
+ release, or prove semantic truth.
881
+ - Added experimental `--runtime codebuddy` handoff generation for source-clone
882
+ CodeBuddy operation. The handoff names the project Skill and role-agent
883
+ assets, records CodeBuddy runtime capabilities, and keeps deterministic CLI
884
+ transactions in the main CodeBuddy session. This does not add gate authority,
885
+ delivery approval, release authority, semantic proof, or output-quality proof.
886
+ - Added an experimental CodeBuddy project Skill adapter under
887
+ `.codebuddy/skills/briefloop/`. The adapter keeps orchestration in the main
888
+ CodeBuddy session, points to the WorkBuddy/CodeBuddy canonical Skill
889
+ references, and can invoke project role agents explicitly. It does not add a
890
+ `codebuddy` runtime, gate authority, delivery approval, release authority, or
891
+ semantic proof.
892
+ - Added experimental CodeBuddy project role sub-agent source assets for
893
+ BriefLoop Scout, Analyst, Editor, Auditor, and Formatter. These are
894
+ source-clone-only drafting adapters and do not add CodeBuddy runtime support,
895
+ gate authority, delivery approval, release authority, or semantic proof.
896
+ - Added a v1.0 pilot evidence gate document and advisory release-consistency
897
+ check. The normal guard verifies that the evidence record exists and states
898
+ its current status; the v1.0 release operator must run the same check with
899
+ `--require-satisfied` before claiming v1.0 readiness. This is release
900
+ evidence bookkeeping only, not semantic proof, output-quality proof, delivery
901
+ approval, or release authority.
902
+ - Hardened the first-user documentation guard so README and Chinese README keep
903
+ the user-facing document block focused on Getting Started, Weekly Loop,
904
+ Troubleshooting, and the golden reference workspace.
905
+ - Added a read-only `briefloop status` progress projection with user-language
906
+ work labels such as `prepare sources`, `select claims`, `audit brief`, and
907
+ `build quality package`. When post-finalize Quality Panel closeout is
908
+ recommended or stale, status may prioritize `briefloop quality summarize` as
909
+ the suggested next command before delivery. The projection is
910
+ diagnostic/operator guidance only and does not create stage, gate, delivery,
911
+ or release authority.
912
+ - Added public BriefLoop contact entrypoints for `briefloop.ai`,
913
+ `hello@briefloop.ai`, `contact@briefloop.ai`, `help@briefloop.ai`, and
914
+ `security@briefloop.ai`, with explicit support/security boundaries.
915
+ - Productized first-user routing surfaces so README and first-user guides route
916
+ by supported report job (`industry-weekly`, `management-monthly`,
917
+ `document-review`) while the product baseline guard prevents internal report
918
+ pack ids or control-plane vocabulary from returning to those first-run route
919
+ blocks.
920
+ - Added static `_BUNDLE_README.md` guidance files inside generated delivery and
921
+ audit bundle archives so non-developer reviewers know which files to open
922
+ first. These guidance files are packaging instructions only; they do not
923
+ create delivery approval, release authority, or semantic-proof claims.
924
+
925
+ ## [0.11.12] — 2026-07-04
926
+
927
+ ### Added
928
+
929
+ - Added fifteen-minute pilot documentation and deterministic first-run demo
930
+ Quality Panel surfacing. The demo remains API-free, source-clone oriented,
931
+ synthetic, and not an output-quality proof.
932
+ - Added WorkBuddy install documentation, Chinese WorkBuddy documentation, and a
933
+ trigger-only WorkBuddy Assistant prompt template. These docs keep the
934
+ WorkBuddy Skill as the local capability surface, describe Assistant as a
935
+ remote trigger into a local Skill-enabled WorkBuddy session, and do not add
936
+ WorkBuddy delegated runtime support, gate authority, delivery approval,
937
+ release approval, or semantic proof claims.
938
+ - Added a source-clone WorkBuddy Skill bundle under
939
+ `integrations/workbuddy/briefloop/`, with WorkBuddy-facing quickstart,
940
+ workspace workflow, artifact-boundary, status/gate, repair, and safety
941
+ references. The bundle uses the `operator` runtime path and deterministic
942
+ BriefLoop CLI transactions only. It is not shipped as Python wheel/sdist
943
+ package data yet and does not add WorkBuddy runtime authority, gate authority,
944
+ delivery approval, release approval, or semantic proof claims.
945
+ - Added `briefloop workbuddy pack-skill` /
946
+ `multi-agent-brief workbuddy pack-skill` to build a deterministic local
947
+ WorkBuddy Skill zip and sidecar manifest from source-clone files. The package
948
+ is a local Skill archive, not a WorkBuddy Marketplace publication, Python
949
+ package-data surface, runtime authority layer, gate authority, delivery
950
+ approval, release approval, or semantic proof claim.
951
+ - Added `operator` runtime as the host-agnostic compact operation path for
952
+ environments without a dedicated BriefLoop runtime adapter. `manual` remains
953
+ a legacy CLI alias that resolves to `operator`; generated handoff artifacts
954
+ now record the operator runtime and its non-delegation assumptions without
955
+ changing stage order, artifact contracts, gates, delivery, or release
956
+ authority.
957
+ - Added `semantic-support adjudicate` to record human accept/reject decisions
958
+ for valid Semantic Assessment Report proposal rows in
959
+ `semantic_support_acceptance_ledger.json` with event-log linkage. These
960
+ records do not write Claim-Support Matrix rows, route repair, run gates,
961
+ approve delivery, authorize release, or prove semantic truth.
962
+
963
+ ### Changed
964
+
965
+ - Declared `operator` in the orchestrator runtime contract and narrowed
966
+ operator handoff internals for host-agnostic compact operation.
967
+ - Documented the draft-promote ownership matrix for agent-authored drafts,
968
+ Python validation/promotion, and authoritative artifacts.
969
+
970
+ ### Fixed
971
+
972
+ - Preserved explicit online-search opt-outs from `briefloop onboard` when the
973
+ saved `onboarding.json` is replayed through `briefloop init --from-onboarding`.
974
+ - Hardened public-safety sha256 scanning so checksum fields are allowed by
975
+ span, while token-like values near checksum text are still scanned.
976
+ - Required screened-candidate discard reason codes and aligned Hermes-facing
977
+ prompts with that contract.
978
+ - Classified unavailable Quality Panel states as missing instead of neutral
979
+ informational badges.
980
+ - Froze deterministic demo Quality Panel timestamps and surfaced Quality Panel
981
+ artifacts in the first-run demo path.
982
+ - Blocked delivery when refreshed run-integrity state is invalid.
983
+ - Hardened post-merge control projections and added semantic support auditor
984
+ dogfood fixtures for proposal-only coverage.
985
+ - Clarified Semantic Support Auditor role wording so human accept/reject
986
+ records adjudication only and does not create support truth or authoritative
987
+ audit findings.
988
+
989
+ ## [0.11.9] — 2026-07-04
990
+
991
+ ### Added
992
+
993
+ - **Bilingual Quality Panel HTML toggle**: `quality_panel.html` now embeds a
994
+ static CSS-only English / Chinese label toggle for the human-readable panel
995
+ view while keeping `quality_panel.json` as the single untranslated machine
996
+ facts source. The HTML remains script-free, dependency-free, SHA-bound to the
997
+ sibling JSON projection, and does not add quality judgments, gate authority,
998
+ delivery approval, or release authority.
999
+ - **pipx / PyPI packaging prep**: added future package-index readiness
1000
+ documentation, neutral PyPI project metadata, and release-checklist guardrails
1001
+ for a later `pipx` path while keeping source-clone setup as the current
1002
+ launch install path. This does not publish a PyPI artifact, rename the Python
1003
+ package, remove the `multi-agent-brief` console script, or make `pipx` a
1004
+ current install instruction.
1005
+ - **Evidence Extract MinerU-derived Markdown bridge**: `briefloop extract` /
1006
+ `multi-agent-brief extract` can now bind an already-present adjacent
1007
+ `.mineru.md` representation for PDF/binary `evidence_extract` sources,
1008
+ keeping the original source bytes in the source lock while using the derived
1009
+ Markdown for deterministic logical-page and text-span seed registration. This
1010
+ does not run MinerU automatically, parse PDFs by itself, perform rendered-page
1011
+ visual inspection, extract tables or figures, judge semantic support,
1012
+ generate Claim-Support Matrix rows, approve delivery, authorize publication,
1013
+ or close the full Evidence Extraction Mode scope.
1014
+
1015
+ ### Fixed
1016
+
1017
+ - **Architecture reference version label**: corrected the mislabeled
1018
+ `docs/mabw-architecture-reference-v0.2.0.md` path by turning it into a
1019
+ compatibility pointer and moving the legacy MABW v0.3.0 architecture
1020
+ reference to `docs/mabw-architecture-reference-v0.3.0-legacy.md`. This is a
1021
+ documentation-label fix only, not a product capability change.
1022
+ - **Repository hygiene**: removed an unrelated Understand Anything graph-merge
1023
+ helper, its dedicated test, and a zero-reference source-quality helper module.
1024
+ This is repo cleanup only, not a BriefLoop product behavior or support-status
1025
+ change.
1026
+ - **Orphan module triage**: removed test-only effort-budget and market
1027
+ competitor enrichment modules with their dedicated tests, and marked the
1028
+ runtime safety surface registry as a test-only structural guard. This is
1029
+ layer-boundary cleanup only; it does not change runtime behavior, gates,
1030
+ delivery, release authority, or support status.
1031
+ - **Assessment target contract namespace**: moved the production assessment
1032
+ target contract from the `experiments` namespace to `contracts`, leaving a
1033
+ compatibility shim for older experiment imports. This is layer-boundary
1034
+ cleanup only; it does not change target ids, artifact paths, experiment
1035
+ behavior, gates, delivery, release authority, or support status.
1036
+ - **Runtime handoff domain boundary**: moved runtime handoff domain helpers out
1037
+ of CLI-owned modules and moved `InitProfile` into a workspace domain module,
1038
+ leaving compatibility exports for existing callers. This is layer-boundary
1039
+ cleanup only; it does not change handoff schema, handoff wording, runtime
1040
+ state files, gates, delivery, release authority, or support status.
1041
+ - **Shared test workspace helpers**: added shared pytest fixtures and test
1042
+ helpers for repeated workspace skeleton and SHA-256 setup in CLI/status/
1043
+ delivery tests. This is test infrastructure cleanup only; it does not change
1044
+ runtime behavior, artifact contracts, gates, delivery, release authority, or
1045
+ support status.
1046
+
1047
+ ## [0.11.6] — 2026-07-03
1048
+
1049
+ ### Added
1050
+
1051
+ - **Release checklist**: added `docs/release-checklist.md` as an
1052
+ operator-facing release preparation checklist covering version/tag/release
1053
+ checks, release consistency, product baseline, launch smoke, public-claim
1054
+ guardrails, GitHub release existence, and package metadata when applicable.
1055
+ This is release operations documentation only, not a capability claim,
1056
+ benchmark claim, or roadmap commitment.
1057
+ - **Launch/demo smoke guard**: added `scripts/check_launch_smoke.py` to verify
1058
+ the fresh source-checkout demo path reaches import, CLI version, demo init,
1059
+ doctor, and runtime handoff from a temporary workspace. The release
1060
+ consistency check runs the JSON mode. This is setup/handoff readiness only;
1061
+ it does not call an LLM, require a private path or API key, prove semantic
1062
+ truth, prove output-quality improvement, approve delivery, or authorize
1063
+ release.
1064
+ - **Evidence Extract source lock v1**: `briefloop extract` /
1065
+ `multi-agent-brief extract` now writes
1066
+ `output/intermediate/evidence_extract_source_lock.json` plus an audit copy,
1067
+ binding registered `input/sources/evidence_extract/` files to file size and
1068
+ SHA-256 so status/artifact-registry checks can detect later source-byte
1069
+ drift.
1070
+ - **Evidence Extract page inventory seed v1**: `briefloop extract` /
1071
+ `multi-agent-brief extract` now writes
1072
+ `output/intermediate/evidence_extract_page_inventory.json` plus an audit
1073
+ copy, binding the inventory to the source lock and giving UTF-8 text sources
1074
+ deterministic logical page IDs. PDF/binary sources remain registered-only and
1075
+ are flagged as requiring a future extraction tool. This is bounded
1076
+ source-lock/page-seed/span registration for `document-review` /
1077
+ `evidence_extract`; it does not parse PDFs or binary files, render pages for
1078
+ visual inspection, extract tables or figures, generate an evidence ledger or
1079
+ Claim-Support Matrix, judge semantic support, draw legal/disclosure
1080
+ conclusions, approve delivery, or authorize publication.
1081
+ - **Trajectory Regulation decision narrowing**: repeated retry, repair-cycle,
1082
+ or blocker patterns for the current stage now deterministically narrow
1083
+ `workflow_state.next_allowed_decisions` to `request_human_review` and
1084
+ `block_run`, record a `trajectory_decision_narrowed` event, and surface the
1085
+ narrowing through status and runtime handoff. This does not add decision
1086
+ vocabulary, execute repair, change stage order, run gates, approve delivery,
1087
+ decide release readiness, or let Python perform agent work.
1088
+ - **Release/evidence synthetic blocker regressions**: packaged public-safe
1089
+ evaluation cases now cover the remaining #96 release/evidence failure
1090
+ patterns: unauthorized institution branding, mixed metric scope,
1091
+ media-only legal/policy support, company-event claims missing latest official
1092
+ checks, third-party price snapshots for formal-release treatment, and formal
1093
+ release-candidate checks missing human approvals. These cases use explicit
1094
+ synthetic Claim-Support Matrix records and release-readiness metadata only;
1095
+ they do not add live source retrieval, automatic official-source judgment,
1096
+ semantic truth proof, or public-release authorization.
1097
+ - **Minimal comparative evaluation packet**: added a public-safe v0.11.4
1098
+ comparison packet with three synthetic tasks, a direct prompt/template
1099
+ baseline arm, a BriefLoop-style workflow arm, frozen raw-output hashes, raw
1100
+ reviewer observations, and a second-reviewer subset. The release consistency
1101
+ check now runs `scripts/check_minimal_comparative_eval.py` to verify the
1102
+ packet shape and hash bindings. This is bounded evaluation evidence only; it
1103
+ does not claim general output-quality improvement, speed improvement,
1104
+ semantic truth proof, benchmark superiority, delivery approval, or release
1105
+ authorization.
1106
+ - **Product OS reader-quality reference package**: the packaged
1107
+ `same_evidence_reader_quality_regression` eval case now generates
1108
+ Quality Panel JSON/summary/HTML plus clean delivery/audit bundle archives,
1109
+ and the docs include a public-safe v0.11.3 reference note. This is an
1110
+ inspectable reference-package regression signal only; it does not claim
1111
+ output-quality improvement, semantic proof, delivery approval, or release
1112
+ authorization.
1113
+ - **Same-evidence reader-quality regression pack**: packaged public-safe
1114
+ evaluation cases now include a synthetic
1115
+ `same_evidence_reader_quality_regression` workspace that holds evidence
1116
+ inputs fixed while surfacing existing materiality-selection,
1117
+ reader-template-conformance, support-wording, and Quality Panel closeout
1118
+ projections. The eval runner can call `quality.summarize` to generate and
1119
+ validate Quality Panel JSON/summary/HTML artifacts in the fixture. This is a
1120
+ deterministic regression guard only; it does not score model output quality,
1121
+ prove semantic correctness, run subagents, fetch sources, or approve
1122
+ delivery/release.
1123
+ - **Final quality scoped eval case**: packaged public-safe eval cases now include
1124
+ `final_abstract_quality_warning_surface`, which exercises the scoped #79
1125
+ warning surface on reader-facing Markdown and confirms the findings flow into
1126
+ Quality Summary without blocking, opening repair, or writing repair
1127
+ instructions into reader output. This remains deterministic warning
1128
+ projection only; it is not a semantic quality judge, delivery approval,
1129
+ release authority, or publication-readiness claim.
1130
+ - **Quality Panel real-run closeout guidance**: finalize reports and
1131
+ `status --json` now project a post-finalize Quality Panel closeout
1132
+ recommendation pointing operators to
1133
+ `briefloop quality summarize --workspace <workspace>`. The Quality Panel and
1134
+ summary/HTML renderers also show the audit/delivery bundle separation for
1135
+ these artifacts. This is operator follow-up guidance only; finalize does not
1136
+ auto-generate Quality Panel artifacts, Quality Panel remains audit-bundle
1137
+ material when valid, and it does not approve delivery, decide release
1138
+ readiness, run gates, repair content, or prove report correctness.
1139
+ - **Citation Profile Split**: packaged ReportTemplates can now declare
1140
+ `reader_contract.citation_profile` values (`executive`, `analyst`, or
1141
+ `audit`) so finalize reports and bundle manifests record the resolved
1142
+ reader/audit citation profile. Reader delivery keeps reader-safe source
1143
+ labels and does not expose Claim Ledger IDs, span IDs, local paths, or
1144
+ hashes; audit bundles retain the trace artifacts when present. This is
1145
+ citation-surface metadata only; it does not prove support, alter gates,
1146
+ remove audit trace, approve delivery, or decide release readiness.
1147
+ - **Support-calibrated wording warnings**: `status --json` and Quality Panel
1148
+ now surface warning-only `support_wording` diagnostics when reader-facing
1149
+ Markdown uses strong or unframed wording for claims with explicit weak,
1150
+ downgrade-required, inferential, unsupported, or media/report-style support
1151
+ metadata. The projection consumes recorded Claim Ledger, source taxonomy, and
1152
+ valid Claim-Support Matrix policy signals when present. It does not judge
1153
+ claim truth, generate or accept support rows, run gates, block delivery,
1154
+ approve release, or create a quality score.
1155
+ - **Reader Template Conformance v1**: packaged ReportTemplates can now declare
1156
+ warning-only reader contracts for required reader blocks, Markdown table
1157
+ slots, executive-summary length, and Source Appendix position. Status,
1158
+ handoff, finalize reports, and Quality Panel surface deterministic
1159
+ `report_template_conformance` diagnostics for finalized reader Markdown.
1160
+ This does not rewrite briefs, invent missing sections, parse DOCX content,
1161
+ run gates, block delivery, approve release, score prose quality, or prove
1162
+ semantic correctness.
1163
+ - **Materiality-aware selection diagnostic projection**: `status --json` and
1164
+ Quality Panel now surface when excluded or deprioritized screened candidates
1165
+ match explicit PolicyProfile `materiality_terms` or workspace focus terms
1166
+ such as must-watch topics, with capacity/scope reason summaries and
1167
+ `request_human_review` / `review_materiality_exclusions` operator actions.
1168
+ This is deterministic keyword diagnostics only; Python does not infer
1169
+ semantic importance, mutate screening results, resurrect candidates, alter
1170
+ the Claim Ledger, run gates, approve delivery, or decide release readiness.
1171
+ - **Guidance Manifestation diagnostic projection**: status and Quality Panel
1172
+ can now surface optional
1173
+ `output/intermediate/guidance_manifestation_report.json` labels for
1174
+ materialized approved guidance entries:
1175
+ `explicitly_reflected`, `partially_reflected`, `contradicted`, and
1176
+ `not_observable`. Packaged public-safe eval cases include a synthetic
1177
+ `not_observable` report. This is an observability diagnostic only; it does
1178
+ not mutate Improvement Memory, approve guidance, score quality, run gates,
1179
+ approve delivery, decide release readiness, or prove that guidance improved
1180
+ output.
1181
+ - **Trajectory Regulation read-only projection**: `status --json` and Quality
1182
+ Panel now surface retry-stage, repair-cycle, repeated-blocker, and exhausted
1183
+ attempt-budget summaries derived from existing `workflow_state.json` and
1184
+ `event_log.jsonl`. Packaged public-safe eval cases include a synthetic
1185
+ repeated-retry case that projects `request_human_review` without mutating
1186
+ workflow state. This is operator guidance only; it does not write state,
1187
+ execute repair, run gates, approve delivery, decide release readiness, score
1188
+ quality, or prove output correctness.
1189
+ - **v0.11 product golden path**: refreshed the public English/Chinese Golden
1190
+ Path docs around the supported `industry-weekly`, `management-monthly`, and
1191
+ `document-review` product entries, with explicit local-first, gates-on,
1192
+ human-delivery boundaries. The product-baseline readiness check now guards
1193
+ these docs against drifting back into experiment/scorecard language. This is
1194
+ documentation and release-readiness guardrail work only; it does not add an
1195
+ experiment harness, prove output quality, authorize release, or change runtime
1196
+ stage behavior.
1197
+ - **Final Abstract Quality warning surface**: `gates check` now includes a
1198
+ warning-only `final_abstract_quality` gate for deterministic final-abstract
1199
+ risk patterns such as cadence/title mismatch, comparison framing without a
1200
+ basis section, recommendation/forecast/superlative framing without
1201
+ limitations, incomplete key-case bullets, and locally unsupported
1202
+ superlatives. Findings flow through normal Quality Panel / Quality Summary
1203
+ warning counts. This is not a prose-quality score, semantic quality judgment,
1204
+ truth proof, repair route, delivery approval, release authority, or
1205
+ publication-readiness claim.
1206
+ - **Coverage/Omission gate foundation**: `gates check` now includes a
1207
+ deterministic `coverage_omission` gate that compares valid
1208
+ `screened_candidates.json` selected high-priority candidates against Claim
1209
+ Ledger `candidate_id` metadata and, for auditable briefs only, cited internal
1210
+ `[src:<claim_id>]` references. Reader-facing finalize checks do not require
1211
+ delivery Markdown to retain internal Claim Ledger markers. The gate warns by
1212
+ default, blocks under `--strict`, and ignores invalid or legacy screening
1213
+ artifacts instead of treating them as authority. This is a selected-item
1214
+ continuity check only; it does not infer full-world recall, prove semantic
1215
+ support, execute source discovery, or claim the system found every material
1216
+ item.
1217
+ - **Evidence Extract text-span seed registry**: `briefloop extract` /
1218
+ `multi-agent-brief extract` now writes a valid
1219
+ `output/intermediate/evidence_span_registry.json` for registered UTF-8 text
1220
+ sources, preserving workspace-relative source paths, deterministic
1221
+ `SRC-###` / `ESP-###-01` ids, source-text character offsets
1222
+ (`char_start` / `char_end`), and raw-excerpt hashes. Binary/PDF sources
1223
+ remain registered-only with warnings. This is a bounded source/span
1224
+ registration surface only; it does not parse binary documents, assess
1225
+ semantic support, generate Claim-Support Matrix rows, draw legal or disclosure
1226
+ conclusions, run stages, approve delivery, or create release authority.
1227
+ - **Synthetic Product OS blocker eval cases**: packaged public-safe eval cases
1228
+ now include deterministic blockers for invalid source evidence pack manifests
1229
+ and forged release-readiness event links, plus artifact-registry status
1230
+ assertions in the eval-case runner. These cases validate control-surface
1231
+ behavior only; they do not prove output quality, source support, or release
1232
+ authorization.
1233
+ - **Release branding readiness context**: `release check` now includes
1234
+ configured `release.branding` metadata in
1235
+ `output/intermediate/release_readiness_report.json` and blocks internal
1236
+ readiness when required institution branding or institution-use authorization
1237
+ context is missing or explicitly unauthorized. This is deterministic metadata
1238
+ validation only; it does not provide legal/compliance advice, authorize
1239
+ public release, publish externally, or bypass human delivery approval.
1240
+ - **Feedback contamination regression**: added a v0.11.1 issue-closure
1241
+ regression proving feedback-only input text remains classified as feedback
1242
+ and is not exposed through the runtime handoff as evidence material. The
1243
+ regression also verifies the finalizer does not read feedback-only text into
1244
+ reader Markdown, delivery Markdown, or DOCX output. This is a boundary
1245
+ regression only; it does not add semantic contamination detection or convert
1246
+ feedback into Improvement Memory.
1247
+ - **v0.11 product-baseline readiness check**: added
1248
+ `scripts/check_product_baseline.py` to verify the stable CLI product baseline
1249
+ entrypoints, canonical ReportPack mappings, local-first workspace skeletons,
1250
+ control-spine defaults, no force-deliver CLI surface, reference-run docs, and
1251
+ public boundary wording before a v0.11 release. This is a readiness guard
1252
+ only; it does not bump the version, promote wider Product OS support status,
1253
+ run stages, approve delivery, prove truth, or create release authority.
1254
+ - **Release consistency product-baseline guard**: `check_release_consistency.py`
1255
+ now runs the v0.11 product-baseline readiness check so release prep fails
1256
+ closed if product-facing entries, ReportPack defaults, packaged parity, or
1257
+ public boundary wording drift. This is still a release-readiness check only;
1258
+ it does not promote wider Product OS support status or add runtime authority.
1259
+ - **Product-baseline `packs` CLI surface guard**: the v0.11 readiness check now
1260
+ verifies real `packs list --json` and unknown-pack error output expose
1261
+ product-facing entries while preserving canonical internal ReportPack ids.
1262
+ This is a CLI contract check only; it does not rename ReportPack ids or
1263
+ change workspace behavior.
1264
+ - **README canonicalization guard**: `README.md` and `README.zh-CN.md` are the
1265
+ canonical public README bodies, while `README_en.md` is retained as a short
1266
+ compatibility pointer to `README.md`. The v0.11 readiness and release checks
1267
+ now verify this split before release prep. This is a public-link and
1268
+ public-claim guard only; it does not change support status or product
1269
+ behavior.
1270
+ - **v0.11 support-status alignment guard**: clarified that
1271
+ `industry-weekly`, `management-monthly`, and `document-review` are the
1272
+ stable v0.11 product-baseline workspace entries, while `solar-periodic`,
1273
+ Quality Panel, SourceHub Lite, internal release approvals, and other wider
1274
+ Product OS extensions remain experimental. The product-baseline readiness
1275
+ check now verifies this support-matrix split before release prep.
1276
+
1277
+ ### Fixed
1278
+
1279
+ - **Trajectory Regulation completed-stage guidance**: retry/repair history for
1280
+ completed or non-current stages remains visible as diagnostic history, but no
1281
+ longer emits impossible `request_human_review` / `block_run` recommendations
1282
+ for stages that deterministic state transitions cannot currently accept.
1283
+ - **Coverage gate stage-completion binding**: stage-scoped quality-gate reports
1284
+ must include the `coverage_omission` gate result before auditor/finalize
1285
+ completion can accept them, closing the upgraded-workspace gap where older
1286
+ three-gate reports could bypass coverage continuity checks.
1287
+ - **Generated workspace selector floor**: `briefloop new` now initializes
1288
+ Product OS workspaces with `selector.max_items: 20`, matching the current
1289
+ `brief_quality.min_items: 20` floor instead of creating conservative
1290
+ workspaces that could not satisfy their own configured item count. The legacy
1291
+ `init` path now rejects explicit selector counts below that floor instead of
1292
+ writing internally conflicting configs.
1293
+ - **Release branding blocker event binding**: release-readiness reports now
1294
+ compare the exact branding blocker list recorded by `release check`, so
1295
+ hand-edited branding blockers cannot remain valid merely by preserving a
1296
+ blocked/non-blocked boolean shape.
1297
+ - **Release branding event-link binding**: `release_readiness_report.json`
1298
+ validation now requires the report `branding_context` status and blocked
1299
+ state to match the recorded `release_readiness_checked` event metadata, so
1300
+ hand-edited branding context cannot remain artifact-registry valid.
1301
+ - **ReportPack support-status alignment**: baseline ReportPacks now expose
1302
+ machine-readable `status: supported` for `market_weekly`,
1303
+ `management_monthly`, and `evidence_extract`, while
1304
+ `solar_industry_periodic` remains `experimental`. The product-baseline
1305
+ readiness check now verifies these config and CLI statuses against the public
1306
+ support-matrix split.
1307
+ - **Material-fact bibliography false positives**: deterministic audit now skips
1308
+ bibliography / source-reference sections when checking
1309
+ `number_without_source`, so numbers in source titles do not become blocking
1310
+ material-fact findings while body text remains checked.
1311
+ - **README/public-claim release guards**: tightened `README_en.md` checks so the
1312
+ file must remain only the compatibility pointer, and expanded product-baseline
1313
+ public-claim rejection to catch modal truth-proof claims and publication
1314
+ overclaims that start with `without`.
1315
+ - **Quality Panel legacy gate-report compatibility**: Quality Panel now surfaces
1316
+ legacy `output/intermediate/quality_gate_report.json` status separately from
1317
+ v0.10 scoped auditor/finalize gate reports. Legacy reports are not treated as
1318
+ scoped reports, and workspaces with reader-clean `pass` now receive a scoped
1319
+ gate-report regeneration action instead of a generic finalize-hygiene action.
1320
+
1321
+ ## [0.10.7] — 2026-06-29
1322
+
1323
+ ### Added
1324
+
1325
+ - **Secret hygiene import command**: added `multi-agent-brief secrets import`
1326
+ to copy allowlisted API keys into a workspace `.env` while redacting
1327
+ stdout/stderr to `present` plus a SHA-256 prefix. Doctor guidance now points
1328
+ operators to this command for private key setup; it does not print or log
1329
+ secret values.
1330
+ - **Source metadata contract hardening**: candidate claims, screened
1331
+ candidates, claim drafts, and Claim Ledger validation now separate provider
1332
+ `source_type` from reader-facing `source_category`, reject non-URL text in
1333
+ `source_url`, and preserve `source_category` into frozen Claim Ledger
1334
+ metadata. This is contract validation only; source appendix rendering,
1335
+ metadata enrichment, and source-policy gates remain separate follow-up
1336
+ surfaces.
1337
+ - **Claim metadata freeze/enrichment hardening**: Claim Ledger freeze and the
1338
+ deterministic `state enrich-claim-metadata --from-source-evidence`
1339
+ transaction now preserve `source_url`, `source_type`, and `source_category`
1340
+ in claim metadata so source appendix rendering has stable source identity
1341
+ inputs. The transaction still only enriches metadata, updates hashes,
1342
+ registry, workflow, and events atomically, and remains fail-closed after
1343
+ finalize or downstream completion.
1344
+ - **Secret and source URL safety hardening**: `secrets import` now fails closed
1345
+ unless the target already looks like a BriefLoop workspace, preventing typo
1346
+ paths from creating stray `.env` files, and source metadata URL validation now
1347
+ requires an HTTP(S) scheme with a network location.
1348
+ - **Source Appendix rendering hardening**: reader-facing source appendices now
1349
+ prefer source title, category, publisher/institution, dates, URL, and provider
1350
+ type from Claim Ledger metadata, including usable local-file sources without
1351
+ URLs. Invalid URLs stay unlinked and incomplete source metadata is surfaced as
1352
+ appendix notes; this is rendering hardening only, not source-policy gating or
1353
+ semantic support proof.
1354
+ - **Agent contract and repair guard hardening**: Scout and Claim Ledger runtime
1355
+ contracts now explicitly separate HTTP(S) `source_url`, local/package
1356
+ `source_path`, provider `source_type`, and reader-facing `source_category`.
1357
+ Gate/state repair guidance now spells out the owner-stage repair transaction
1358
+ path and warns against manually updating control files or SHA fields.
1359
+ - **PolicyProfile resolver for zero-config workspaces**: `briefloop new` now
1360
+ accepts explicit `--policy-profile` overrides and deterministic
1361
+ `--industry` hints, writes the selected profile and resolution source into
1362
+ `report_spec.yaml`, and shows the source in validation/status projections.
1363
+ Ambiguous or low-confidence matches use the ReportPack default. This is not
1364
+ gate-time industry inference, compliance judgment, or release authority.
1365
+ - **Product-facing ReportPack entry aliases**: `briefloop new` and
1366
+ `multi-agent-brief new` now accept user-facing entries such as
1367
+ `industry-weekly`, `management-monthly`, `document-review`, and
1368
+ `solar-periodic` while continuing to write canonical internal ReportPack ids
1369
+ such as `market_weekly`, `management_monthly`, `evidence_extract`, and
1370
+ `solar_industry_periodic` into `report_spec.yaml`. This is an entrypoint
1371
+ naming layer only, not a ReportPack/schema rename.
1372
+ - **Solar industry periodic ReportPack dogfood contract**: added packaged
1373
+ experimental `solar_industry_periodic` ReportPack / ReportTemplate contracts
1374
+ and a `solar_manufacturing_default` PolicyProfile for local-first solar
1375
+ manufacturing periodic-report work. This fixes report type, section-order,
1376
+ and deterministic product-default metadata only; it does not automatically
1377
+ generate solar reports, provide tax/compliance/investment advice, judge
1378
+ semantic truth, deliver reports, or authorize publication.
1379
+ - **ReportTemplate section-order projection**: workspaces with
1380
+ `report_spec.yaml` now expose the resolved packaged ReportTemplate and
1381
+ section order in read-only `status` and generated runtime handoff artifacts.
1382
+ This is product section-order metadata only; it does not render templates,
1383
+ rewrite content, bypass gates, deliver reports, or authorize publication.
1384
+ - **ReportTemplate section-conformance projection**: read-only `status` and
1385
+ generated runtime handoff artifacts now report whether existing audited/final
1386
+ reader Markdown headings cover the resolved ReportTemplate sections in order.
1387
+ This is diagnostic structure guidance only; it does not render templates,
1388
+ rewrite content, block gates, deliver reports, or authorize publication.
1389
+ - **Report bundle packaging hygiene**: delivery/audit bundle projection now
1390
+ excludes common macOS, Office, and editor temporary files, records excluded
1391
+ packaging junk in the manifest, preserves UTF-8 artifact paths with
1392
+ deterministic ASCII fallback names, dedupes adjacent reader source labels,
1393
+ and renders Source Appendix URLs as DOCX hyperlinks where supported. This is
1394
+ packaging hygiene only; it is not template rendering, evidence sufficiency,
1395
+ delivery approval, or publication authorization.
1396
+ - **Clean delivery/audit bundle archives**: `packs bundle --write-archives`
1397
+ now writes official clean `delivery_bundle.zip` and `audit_bundle.zip` files
1398
+ from the bundle manifest artifact sets, excluding stray legacy ZIP contents
1399
+ and package-root junk. These archives are deterministic export surfaces only;
1400
+ they do not render templates, bypass gates, approve delivery, or authorize
1401
+ publication.
1402
+ - **Durable source evidence pack materialization**: added experimental
1403
+ `sources materialize-pack` to write explicit manual/cached-package source
1404
+ records into `input/sources/` plus
1405
+ `output/intermediate/source_evidence_pack_manifest.json`. The manifest is
1406
+ optional and hash-validated when present. This materializes source evidence
1407
+ bytes for archive reproducibility only; it does not treat source candidates,
1408
+ search summaries, or model summaries as evidence, and it does not assess
1409
+ semantic support or generate Claim-Support Matrix rows.
1410
+ - **Evidence Extract product pack**: added an experimental `evidence_extract`
1411
+ ReportPack / ReportTemplate / PolicyProfile plus `briefloop extract` /
1412
+ `multi-agent-brief extract` source/scope registration. The command copies
1413
+ explicit local source files into the workspace and writes
1414
+ `extraction_scope.yaml` plus source registrations only; it does not parse
1415
+ PDFs, generate evidence spans, draw legal or disclosure conclusions, bypass
1416
+ gates, or authorize delivery.
1417
+ - **SourceHub Lite setup commands**: added experimental `sources add-file`,
1418
+ `sources add-rss`, and `sources add-web-search` to register local text files,
1419
+ RSS feeds, and runtime web-search handoff tasks in `sources.yaml`. Local
1420
+ files are copied into the workspace before registration so external absolute
1421
+ paths are not persisted. Web-search tasks use `runtime_tool` handoff mode and
1422
+ do not execute Python web search, crawl the web, create source candidates as
1423
+ evidence, generate Evidence Span Registry entries, bypass gates, or authorize
1424
+ delivery.
1425
+ - **Source taxonomy normalization**: durable source evidence records and Claim
1426
+ Ledger source metadata now preserve separate provider/storage
1427
+ `source_type`, retrieval/page `retrieval_source_type`, reader-facing
1428
+ `source_category`, and `underlying_evidence_type` fields. This clarifies
1429
+ cases such as a news article about a paper versus the paper itself; it is not
1430
+ source trust scoring, semantic support assessment, or a source-policy gate.
1431
+ - **Source Appendix audit trace upgrade**: reader-facing Source Appendices now
1432
+ can display safe retrieval and underlying-evidence taxonomy labels, while the
1433
+ separate `output/source_appendix_trace.md` audit copy records claim/source
1434
+ mappings, source byte hashes, sizes, span IDs, and metadata completeness
1435
+ warnings. This is traceability and appendix hardening only; it does not prove
1436
+ source support, alter delivery gates, or authorize publication.
1437
+ - **Screener discard audit trail**: object-shaped `screened_candidates.json`
1438
+ now supports deterministic discard audit validation when candidate totals or
1439
+ discard audit fields are present. Excluded/deprioritized entries must carry a
1440
+ stable reason code and short explanation under that audit surface, and totals
1441
+ must reconcile with selected plus discarded candidates. Legacy reason-only
1442
+ screened candidate artifacts remain accepted.
1443
+ - **ReportTemplate render-plan projection**: read-only status and generated
1444
+ handoff artifacts now project the future render source artifact, section
1445
+ heading mapping, unresolved section diagnostics, and planned delivery targets
1446
+ for workspaces with a resolved ReportTemplate. This is render planning
1447
+ metadata only; it does not render templates, rewrite content, call finalize,
1448
+ bypass gates, deliver reports, or authorize publication.
1449
+ - **ReportTemplate renderer MVP**: finalize now records an experimental
1450
+ `template_rendering` report and can apply the resolved ReportTemplate section
1451
+ order to reader Markdown before DOCX generation and reader-final checks. This
1452
+ renderer only reorders already-present sections; unresolved or extra
1453
+ top-level sections remain diagnostic/no-op. It does not create a second gate
1454
+ engine, assess semantic support, approve delivery, or authorize publication.
1455
+ - **Internal release modes and human approval ledger**: added experimental
1456
+ `approval init`, `approval record`, and `release check` commands for internal
1457
+ review workflows. The commands write
1458
+ `output/intermediate/human_approval_ledger.json`,
1459
+ `output/intermediate/release_readiness_report.json`, and event-log records
1460
+ through deterministic CLI transactions. Release checks can report readiness
1461
+ for internal review modes only; they do not authorize public release, publish
1462
+ externally, bypass gates, or replace legal/compliance/IR owner judgment.
1463
+ - **Quality Panel JSON projection foundation**: added an experimental
1464
+ `quality_panel.json` product-quality projection that summarizes existing
1465
+ control integrity, source evidence, gate, claim/support, and delivery hygiene
1466
+ surfaces. This is a machine-readable audit/control summary only; it does not
1467
+ run gates, create a quality score, decide release eligibility, approve
1468
+ delivery, prove semantic truth, or execute repair.
1469
+ - **Quality Summary Markdown projection**: added optional
1470
+ `output/intermediate/quality_summary.md` as a compact human-readable summary
1471
+ rendered from valid `quality_panel.json`. This is an operator-readable
1472
+ projection only; it is not a quality score, gate report replacement, release
1473
+ authorization, delivery approval, truth proof, or repair action.
1474
+ - **Quality summarize CLI**: added experimental
1475
+ `briefloop quality summarize --workspace <workspace>` to write
1476
+ `quality_panel.json` and source-bound `quality_summary.md` together. The
1477
+ command is a deterministic projection writer only; it does not run gates,
1478
+ create blockers, start repair, approve delivery, prove truth, or authorize
1479
+ release.
1480
+ - **Quality Panel static HTML projection**: added optional
1481
+ `output/intermediate/quality_panel.html` as a static, dependency-free audit
1482
+ attachment rendered from valid `quality_panel.json`. The HTML uses inline CSS
1483
+ and no external assets, scripts, frontend runtime, quality score, release
1484
+ authority, delivery approval, truth proof, or gate reimplementation.
1485
+ - **Quality Panel audit bundle integration**: report bundle projection now
1486
+ includes `quality_panel.json`, `quality_summary.md`, and
1487
+ `quality_panel.html` in audit bundles when present, while keeping them out of
1488
+ reader-facing delivery bundles. This is audit packaging only; it does not
1489
+ create a dashboard, quality score, release eligibility decision, delivery
1490
+ approval, truth proof, or gate replacement.
1491
+
1492
+ ### Fixed
1493
+
1494
+ - **Release approval event-linkage hardening**: release readiness now rejects
1495
+ human approval ledger records whose `event_id` does not resolve to a matching
1496
+ current-run approval event, and artifact registry validation rejects forged or
1497
+ mismatched approval/readiness event references.
1498
+ - **Evidence Extract force rerun source preservation**: `extract --force` now
1499
+ stages source bytes before clearing managed
1500
+ `input/sources/evidence_extract/` files, so rerunning extract with a
1501
+ previously copied managed source path can update scope without deleting the
1502
+ source before it is recopied.
1503
+ - **Fast-rerun Claim Ledger enrichment chain validation**: fast-rerun import
1504
+ validation now accepts a Claim Ledger derived through a chained metadata
1505
+ enrichment record when the latest record still points back to the original
1506
+ imported Claim Ledger hash.
1507
+ - **Hermes Claim Ledger completion handoff**: Hermes-generated skill and prompt
1508
+ guidance now run `state stage-complete --stage claim-ledger` after
1509
+ `state freeze-claim-ledger` and before Analyst delegation, so the runtime
1510
+ state machine advances with the frozen Claim Ledger.
1511
+ - **Source Appendix source ID title fallback**: reader-facing source appendices
1512
+ no longer use raw ledger `source_id` values such as `SRC-001` as display
1513
+ titles when source title/name metadata is missing; they keep the generic
1514
+ source record title and surface the missing-title note instead.
1515
+ - **Claim metadata enrichment rerun source type repair**: rerunning
1516
+ `state enrich-claim-metadata --from-source-evidence` now also repairs stale
1517
+ top-level `source_type: local_file` when existing claim metadata already
1518
+ matches the imported source authority, so Source Appendix rendering receives
1519
+ the corrected provider type.
1520
+ - **Claim Ledger freeze source type defaults**: claim drafts that provide a
1521
+ whitespace-only `source_type` are now materialized as `local_file` during
1522
+ Claim Ledger freeze, matching the claim-draft validator's default local-file
1523
+ semantics.
1524
+ - **Source URL malformed-host validation**: source metadata URL validation now
1525
+ treats parser errors such as malformed bracketed hosts as normal validation
1526
+ failures instead of letting `urlparse()` exceptions escape contract checks.
1527
+ - **Source metadata local-file default validation**: claim drafts that omit
1528
+ `source_type` and `source_url` are now validated the same way Claim Ledger
1529
+ freeze materializes them, as local-file sources that must carry reader-facing
1530
+ source title/name and `source_category`.
1531
+ - **Enriched source type rendering**: claim metadata enrichment now mirrors
1532
+ imported `source_url` and non-default `source_type` into the Claim Ledger
1533
+ fields read by Source Appendix rendering, so non-local imported sources are
1534
+ not displayed as default local-file sources.
1535
+ - **PolicyProfile resolver provenance hardening**: `briefloop new` now treats
1536
+ `--industry` as the authoritative deterministic resolver hint before falling
1537
+ back to company text, and ReportSpec validation rejects
1538
+ `report_pack.default_policy_profile` provenance when the resolved profile
1539
+ does not match the pack default.
1540
+
1541
+ ## [0.10.1] — 2026-06-22
1542
+
1543
+ ### Added
1544
+
1545
+ - **Experimental ReportSpec / ReportPack registry**: added product-layer
1546
+ contracts for report type metadata and packaged experimental packs
1547
+ (`market_weekly`, `management_monthly`), plus read-only CLI surfaces
1548
+ `multi-agent-brief packs list`, `multi-agent-brief packs show <pack_id>`,
1549
+ and `multi-agent-brief validate-report-spec <report_spec.yaml>`. These are
1550
+ contract/registry surfaces only; they do not create workspaces, run stages,
1551
+ render templates, bypass gates, deliver reports, or authorize publication.
1552
+ - **BriefLoop compatibility aliases**: added `briefloop` as a shell CLI alias
1553
+ for `multi-agent-brief`, and `/briefloop` as a Claude writer command alias
1554
+ for the existing five-verb `/mabw` surface. The original CLI and `/mabw`
1555
+ command remain supported.
1556
+ - **Experimental product workspace skeletons**: added
1557
+ `multi-agent-brief new <report-pack> <workspace>` / `briefloop new
1558
+ <report-pack> <workspace>` to create conservative local-first workspaces
1559
+ from packaged ReportPacks, including `report_spec.yaml`, workspace config,
1560
+ source config, user instructions, and input folders. This is setup only; it
1561
+ does not run stages, render templates, deliver reports, approve publication,
1562
+ or bypass gates.
1563
+ - **BriefLoop alias help polish**: `briefloop --help` now displays
1564
+ `usage: briefloop` while `multi-agent-brief --help` keeps the stable engine
1565
+ CLI name.
1566
+ - **Experimental ReportTemplate registry and bundle projection**: added
1567
+ packaged `market_weekly` and `management_monthly` section-order template
1568
+ contracts plus `multi-agent-brief packs templates` and
1569
+ `multi-agent-brief packs bundle --workspace <workspace>` for a reproducible
1570
+ delivery/audit bundle manifest over finalized workspace artifacts. This is a
1571
+ projection surface only; it does not render templates, move artifacts, bypass
1572
+ gates, deliver reports, or authorize publication.
1573
+ - **Experimental PolicyProfile registry**: added a product-layer
1574
+ `PolicyProfile` schema/registry with packaged `manufacturing_default`, plus
1575
+ ReportPack default binding and optional ReportSpec override validation.
1576
+ `validate-report-spec` now reports the resolved policy profile. This records
1577
+ deterministic product defaults only; it does not adapt quality gates, change
1578
+ runtime behavior, judge industry compliance, decide truth, or authorize
1579
+ release.
1580
+ - **Experimental PolicyProfile skeletons**: added conservative
1581
+ `finance_default` and `internet_default` profile skeletons alongside
1582
+ `manufacturing_default`. These are public-safe product defaults only; they do
1583
+ not provide finance compliance judgment, investment-advice detection, internet
1584
+ rumor verification, source authority, gate adaptation, or release authority.
1585
+ - **PolicyProfile projection visibility**: `status --json` / human-readable
1586
+ status and generated runtime handoff artifacts now surface the resolved
1587
+ PolicyProfile id, source, hash, and compact product-policy summary when a
1588
+ workspace has `report_spec.yaml`. This is traceability for product metadata
1589
+ only; it does not judge compliance or truth, bypass the control spine, or
1590
+ authorize release.
1591
+ - **PolicyProfile deterministic gate adapter**: resolved PolicyProfiles can
1592
+ tighten existing deterministic quality-gate strictness and reader-final
1593
+ forbidden-phrase checks. This is a limited adapter over existing gates, not a
1594
+ second gate engine, semantic support assessment, industry compliance
1595
+ judgment, truth proof, release authority, delivery override flag, or
1596
+ force-deliver path.
1597
+ - **PolicyProfile dogfood fixtures**: added public-safe synthetic fixtures for
1598
+ resolved profile projection, deterministic gate-adapter strictness, and
1599
+ reader-final forbidden-phrase checks. These fixtures do not establish
1600
+ industry compliance, investment-advice detection, rumor verification,
1601
+ release readiness, truth proof, or report quality claims.
1602
+
1603
+ ## [0.9.4] — 2026-06-22
1604
+
1605
+ ### Added
1606
+
1607
+ - **Experimental Semantic Assessment Report schema**: added an optional
1608
+ `output/intermediate/semantic_assessment_report.json` contract for auditable
1609
+ semantic support assessment proposals over claim atoms and evidence spans.
1610
+ This is schema foundation only; it does not judge truth, mutate the
1611
+ Claim-Support Matrix, create human adjudication queue items, gate delivery,
1612
+ decide release eligibility, or grant support authority.
1613
+ - **Semantic Assessment Report reference validation**: present Semantic
1614
+ Assessment Report artifacts now validate machine-checkable references to
1615
+ Claim Ledger claims, Atomic Claim Graph atoms, and Evidence Span Registry
1616
+ spans, and require uncertain high-materiality `llm_only` rows to be flagged
1617
+ for human adjudication. This remains proposal validation only; it does not
1618
+ judge support semantics, write the Claim-Support Matrix, create an
1619
+ adjudication queue, or decide release eligibility.
1620
+ - **Semantic Assessment Report proposal projection**: added a pure helper that
1621
+ projects Semantic Assessment Report rows into proposal-only Claim-Support
1622
+ Matrix delta candidates after callers have validated the report. The
1623
+ projection does not write accepted support rows, create adjudication queue
1624
+ items, gate delivery, judge support semantics, or decide release eligibility.
1625
+ - **Semantic Assessment Report status surface**: `status --json` and the
1626
+ human-readable status report now expose read-only proposal counts for present
1627
+ valid Semantic Assessment Reports, including `llm_only`, high uncertainty,
1628
+ high disagreement, and human-adjudication flags. The human-readable status
1629
+ line explicitly labels the surface as `proposal_only`. This does not add
1630
+ delivery gates, release authority, adjudication queue items, or accepted
1631
+ Claim-Support Matrix writes.
1632
+ - **Semantic Assessment Report dogfood fixtures**: added public-safe synthetic
1633
+ fixtures for direct support, partial/weak support, unsupported proposals,
1634
+ assessor disagreement, high uncertainty, unknown references, and
1635
+ high-materiality `llm_only` adjudication requirements. These fixtures validate
1636
+ the proposal surface only; they do not create support truth, adjudication
1637
+ queues, delivery gates, or release authority.
1638
+
1639
+ ## [0.9.3] — 2026-06-21
1640
+
1641
+ ### Added
1642
+
1643
+ - **Experimental Evidence Span Registry schema**: added an optional
1644
+ `output/intermediate/evidence_span_registry.json` contract and runtime
1645
+ validation for source-level evidence spans with recomputable raw-excerpt
1646
+ hashes. This is schema foundation only and does not perform semantic support
1647
+ assessment, Evidence Span support scoring, Claim-Support Matrix generation,
1648
+ or support-sufficiency gating.
1649
+ - **Evidence span source-pack binding**: present Evidence Span Registry
1650
+ artifacts now validate that each span points to a durable `input/sources/`
1651
+ file and that the declared raw excerpt and optional character offsets match
1652
+ the source bytes. This is source-pack binding only; it does not add semantic
1653
+ support assessment, Claim-Support Matrix behavior, support-sufficiency gates,
1654
+ or source appendix UI.
1655
+ - **Evidence span archive projection**: finalized run archives now include a
1656
+ hash-only Evidence Span Registry projection when a present registry is valid,
1657
+ including registry bytes, archived source-pack paths, source file hashes,
1658
+ source sizes, span IDs, raw-excerpt hashes, and offsets. Invalid registries
1659
+ are recorded as invalid without span/source projection. This is archive
1660
+ reproducibility only; it does not add semantic support assessment,
1661
+ Claim-Support Matrix behavior, support-sufficiency gates, or source appendix
1662
+ UI.
1663
+ - **Evidence span source appendix trace view**: finalize now adds reader-safe
1664
+ Evidence Span summary counts to the Source Appendix when a present registry is
1665
+ valid, and writes raw span details only to `output/source_appendix_trace.md`
1666
+ as an audit copy. This does not add semantic support assessment,
1667
+ Claim-Support Matrix behavior, support-sufficiency gates, or a delivery
1668
+ artifact.
1669
+ - **Experimental Claim-Support Matrix schema**: added an optional
1670
+ `output/intermediate/claim_support_matrix.json` contract and runtime
1671
+ schema validation for atom-to-evidence-span support records. This is schema
1672
+ and vocabulary foundation only; it does not assess support, validate
1673
+ cross-artifact references, route repairs, add gates, decide release
1674
+ eligibility, or claim support sufficiency.
1675
+ - **Claim-Support Matrix policy projection helper**: added a pure deterministic
1676
+ helper that projects explicit matrix rows into atom-level policy signals such
1677
+ as blocking rows, weak support, downgrade requirements, adjudication
1678
+ requirements, and inference-framing requirements. This does not assess
1679
+ semantic support, write workspace state, add gates/status integration, or
1680
+ decide release eligibility.
1681
+ - **Claim-Support Matrix cross-artifact validation**: present matrices now
1682
+ validate claim, atom, and evidence-span references against sibling Claim
1683
+ Ledger, Atomic Claim Graph, and Evidence Span Registry artifacts, and require
1684
+ high-materiality atoms to have explicit support rows. Missing matrices remain
1685
+ optional; this does not assess semantic support, add gates/status
1686
+ integration, or decide release eligibility.
1687
+ - **Claim-Support Matrix gate/status projection**: present valid matrices now
1688
+ project explicit atom-level support records into quality-gate findings and
1689
+ read-only status summaries. Missing or invalid matrices remain non-blocking;
1690
+ this does not assess semantic support, prove truth, or decide release
1691
+ eligibility.
1692
+
1693
+ ### Changed
1694
+
1695
+ - **Claim-Support Matrix public documentation alignment**: updated README,
1696
+ support matrix, architecture status, and operator-skill references to describe
1697
+ the current experimental support-record control plane: schema validation,
1698
+ cross-artifact validation, and gate/status projection from explicit rows. This
1699
+ remains separate from semantic support assessment, truth proof, release
1700
+ eligibility, or support-sufficiency gates.
1701
+
1702
+ ## [0.9.1] — 2026-06-20
1703
+
1704
+ ### Added
1705
+
1706
+ - **Experimental Atomic Claim Graph schema**: added an optional
1707
+ `output/intermediate/atomic_claim_graph.json` contract and runtime validation
1708
+ for structured atomic decomposition of Claim Ledger claims. This is a schema
1709
+ foundation only and does not perform semantic atomization, evidence-span
1710
+ extraction, claim-support scoring, or support-sufficiency gating.
1711
+ - **Atomic Claim Graph coverage/type validation**: present
1712
+ `atomic_claim_graph.json` artifacts now receive deterministic whole-ledger
1713
+ coverage and Claim Ledger type-consistency checks. The graph remains optional
1714
+ and this does not perform semantic atomization or support-sufficiency
1715
+ assessment.
1716
+ - **Analyst/Editor Atomic Claim Graph boundary**: Analyst and Editor contracts
1717
+ now treat present `atomic_claim_graph.json` files as optional experimental
1718
+ decomposition aids only. The Claim Ledger remains the factual evidence base;
1719
+ this adds no no-new-atom checker, gate, CLI, or support-sufficiency claim.
1720
+ - **Atomic reader residue and coverage projection**: present valid Atomic Claim
1721
+ Graphs now produce deterministic reader-text projection metadata for atom ID
1722
+ residue and Claim Ledger citation coverage. The quality-gate projection is
1723
+ warning-only; reader-final residue checks remain blocking for delivery output.
1724
+ This does not perform semantic matching or support-sufficiency assessment.
1725
+
1726
+ ## [0.9.0] — 2026-06-19
1727
+
1728
+ ### Added
1729
+
1730
+ - **BriefLoop public project name**: introduced BriefLoop as the public
1731
+ project-facing name for the v0.9 compatibility period.
1732
+ - **Naming and compatibility policy**: added `docs/briefloop-naming.md` to
1733
+ define BriefLoop, brief-loop engineering, the reserved BriefCI technical
1734
+ sub-layer, and the MABW compatibility surface.
1735
+ - **Brief-loop engineering explainer**: added
1736
+ `docs/brief-loop-engineering.md` to define the failure -> finding -> repair
1737
+ -> regression -> human review -> release decision loop.
1738
+
1739
+ ### Changed
1740
+
1741
+ - **Public framing**: README, documentation index, support matrix, architecture
1742
+ status, red lines, and roadmap now describe BriefLoop as the public name and
1743
+ MABW as the implementation lineage / compatibility surface.
1744
+ - **v0.9 roadmap direction**: changed the public v0.9 direction from
1745
+ distribution/reference workflows to support sufficiency and brief-loop
1746
+ engineering.
1747
+
1748
+ ### Compatibility
1749
+
1750
+ - No runtime surface was renamed in v0.9.0. The `multi-agent-brief` CLI,
1751
+ `/mabw` commands, `multi_agent_brief` Python package/module path,
1752
+ `multi-agent-brief-workflow` distribution name, workspace formats, artifact
1753
+ names, and MABW experiment IDs remain compatible.
1754
+
1755
+ ### Boundaries
1756
+
1757
+ - v0.9.0 is a brand/public-framing preview release. It does not implement
1758
+ Atomic Claim Graph, Evidence Span Registry, Claim-Support Matrix, semantic
1759
+ proof, automatic hallucination elimination, autonomous repair, or
1760
+ ready-to-send output guarantees.
1761
+
1762
+ ## [0.8.6] — 2026-06-19
1763
+
1764
+ ### Added
1765
+
1766
+ - **Auditable-brief assessment target**: MABW-080 now supports
1767
+ `assessment_target=auditable_brief`, allowing content-level experiment runs
1768
+ to stop at the frozen audited brief, audit report, auditor gate report, and
1769
+ auditor-complete boundary instead of requiring finalize, delivery,
1770
+ reader-clean, DOCX/PDF, or delivery archive artifacts.
1771
+ - **Python-owned auditable target contract**: status, register-run, score-run,
1772
+ and downstream guards now project auditable target readiness from workflow
1773
+ state, artifact hashes, auditor gate results, run integrity, audit binding,
1774
+ and event-log evidence instead of workspace prose.
1775
+ - **Python-owned audit binding for auditable runs**: auditor completion records
1776
+ bind the frozen Claim Ledger, audited brief, audit report, auditor gate
1777
+ report, relevant repair transactions, and current-run auditor completion
1778
+ event.
1779
+ - **Treatment-isolation projection for MABW-080**: baseline, memory, and
1780
+ prompt-only conditions now have machine-checkable visibility boundaries:
1781
+ baseline cannot see guidance material, memory receives guidance only through
1782
+ the approved Improvement Memory snapshot, and prompt-only receives guidance
1783
+ only through the explicit prompt guidance block.
1784
+ - **Condition-blind assessment packs**: MABW-080 can export blind audited-brief
1785
+ packs and import assessments through a reveal mapping that binds blind item
1786
+ IDs, audited-brief hashes, scorecard hashes, condition identity, run IDs, and
1787
+ guidance entry IDs.
1788
+ - **Unsupported strategic implication warning**: quality gates can emit a
1789
+ warning-only `unsupported_strategic_implication` finding for strategic demand,
1790
+ procurement, municipal-buyer, policy-demand, or partnership language that is
1791
+ not lexically supported by the frozen Claim Ledger.
1792
+
1793
+ ### Changed
1794
+
1795
+ - **Formal summary denominator hardened**: `experiments 080 summarize` now
1796
+ separates raw observations from formal interpretable metrics and excludes
1797
+ scorecards that fail control, treatment-isolation, audit-binding,
1798
+ blind-assessment, or hash-bound readiness checks.
1799
+ - **Auditable target handoff and finalize behavior hardened**: when
1800
+ `assessment_target=auditable_brief` is complete, runtime guidance and CLI
1801
+ guards direct operators to register, score, and export assessment artifacts
1802
+ instead of continuing to finalize or delivery.
1803
+ - **Repair invalidation made stricter**: owner-stage repairs now stale
1804
+ downstream artifacts until the proper producer reruns, and stale repair
1805
+ baselines are derived from repair-time metadata rather than mutable refreshed
1806
+ registry hashes.
1807
+ - **Gate and status projections made target-aware**: status output no longer
1808
+ reports auditable target completion from stale clean workflow state, missing
1809
+ repair events, incomplete audit bindings, or contradictory gate reports.
1810
+ - **Blind-pack artifact discovery bounded**: `export-blind-pack` checks direct
1811
+ artifact candidates before recursive discovery and limits recursive lookup to
1812
+ explicit workspace roots.
1813
+
1814
+ ### Fixed
1815
+
1816
+ - Prevented formal MABW-080 metrics from trusting self-declared blind metadata
1817
+ without rechecking current scorecard and target-artifact hashes.
1818
+ - Prevented refreshed artifact-registry hashes from being treated as stale
1819
+ repair baselines when downstream artifacts did not exist at repair start.
1820
+ - Prevented incomplete or contradictory auditable target projections from
1821
+ suggesting delivery/finalize paths.
1822
+
1823
+ ### Boundaries
1824
+
1825
+ - v0.8.6 is A-controlled readiness hardening for a future formal MABW-090
1826
+ rerun. It is not proof that Improvement Memory improves output quality.
1827
+ - `auditable_brief` evidence is internal auditable-draft evidence. It is not a
1828
+ management-ready delivery claim and does not cover reader-clean, DOCX/PDF, or
1829
+ final delivery quality.
1830
+ - Python validates hashes, schema, event-log bindings, target readiness,
1831
+ treatment isolation, and imported assessment structure. Python still does not
1832
+ judge prose quality, semantic manifestation, factual regression, strategic
1833
+ soundness, or output quality.
1834
+ - Contaminated, stale, unbound, non-blind, or treatment-leaking runs may remain
1835
+ useful as failure evidence, but must not enter the formal interpretable
1836
+ denominator.
1837
+
1838
+ ## [0.8.5] — 2026-06-16
1839
+
1840
+ ### Added
1841
+
1842
+ - **Delivery snapshot convenience copies**: `finalize` still refreshes `output/delivery/` as the latest reader surface, and now also writes reader-facing copies under `output/delivery-history/<run_id-or-timestamp>/` before the authoritative run archive is created by `state finalize-complete`.
1843
+ - **MABW-080 deterministic scorecard draft builder**: `experiments 080 score-run` can build scorecard metadata from a registered run, case definition, and available archive/control projections without scoring guidance manifestation or output quality.
1844
+ - **MABW-080 assessment import**: `experiments 080 import-assessment` can merge externally supplied guidance-manifestation assessment into a scorecard and derive A/B/invalid validity classes from deterministic control fields plus assessment metadata. Python still does not judge prose quality, guidance manifestation, or semantic regression.
1845
+ - **MABW-080 case summary builder**: `experiments 080 summarize` aggregates
1846
+ existing scorecards into deterministic A/B/invalid counts, condition groups,
1847
+ manifestation-score counts, reader-clean rates, coverage-delta status, timing
1848
+ status, and invalid reasons. It can include explicit `--scorecard` paths when
1849
+ scorecards live outside the case directory. It does not judge output quality
1850
+ or run workflow stages.
1851
+ - **MABW-080 condition scaffold**: `experiments 080 scaffold-condition`
1852
+ imports the frozen fact layer into initialized baseline/memory/prompt-only
1853
+ workspaces and writes operator instructions. It does not create generic
1854
+ workspace config, run subagents, gates, finalize, registration, scoring, or
1855
+ summarization.
1856
+ - **MABW-080 public-safe pilot skeleton**: added
1857
+ `experiments/080/cases/solar_public_001` with a synthetic frozen fact layer
1858
+ seed archive, guidance set, and assessment template. It is setup material, not
1859
+ completed A/B evidence or an output-quality claim.
1860
+
1861
+ ### Boundaries
1862
+
1863
+ - v0.8.5 is an MABW-080 experiment harness release. It is not a claim that briefs are better, faster, semantically verified, or model-performance measured.
1864
+ - **080 pilot observation boundary**: v0.8.5 records pilot-level observation
1865
+ that the intended guidance effect is observable: baseline showed weak
1866
+ manifestation, memory showed clean manifestation, and prompt-only
1867
+ over-applied. This is not treated as A-controlled proof because v0.8.6 still
1868
+ needs target-aware completion, Python-owned audit binding, repair invalidation,
1869
+ treatment isolation, and condition-blind assessment hardening.
1870
+ - `score-run` fills deterministic control/readiness metadata only. It does not score guidance manifestation, prose quality, taste, factual regression, or output quality.
1871
+ - `import-assessment` validates and merges externally supplied assessment metadata. Python does not decide whether guidance manifested.
1872
+ - Delivery snapshots under `output/delivery-history/` are convenience copies. The immutable control archive remains `state finalize-complete` under `output/runs/<run_id>/`.
1873
+
1874
+ ## [0.8.4] — 2026-06-16
1875
+
1876
+ ### Added
1877
+
1878
+ - **Deterministic source provider join**: source provider batches now join through a stable ordering and digest helper so provider completion order does not decide dedupe winners or source ordering.
1879
+ - **Opt-in source provider parallel collection**: parallel-safe source providers can run through an opt-in thread-pool path while unsafe providers remain serial ordering barriers. Joined results still flow through the deterministic source join.
1880
+ - **Scout chunk join contract**: Scout runtime guidance now treats chunk outputs as scratch material and requires parent-side deterministic joining before workflow artifacts are written. Default topology may join into `candidate_claims.json` and `screened_candidates.json`; strict topology joins Scout output only into `candidate_claims.json`.
1881
+ - **Quality gate evaluation helper**: deterministic quality gate finding evaluation is now isolated in a read-only helper with helper-level opt-in parallel execution. Report writing, legacy projection updates, and event emission remain single-writer serial transactions.
1882
+ - **Stage runtime/model provenance**: `state stage-complete` and `state finalize-complete` can record explicit runtime/model values in workflow state and event log metadata as audit provenance only.
1883
+ - **Owner-stage repair transaction**: deterministic `repair start` / `repair complete` transactions can route repair to the owner stage, record active repair state, restrict allowed artifacts, and keep contaminated runs non-reference-eligible.
1884
+
1885
+ ### Changed
1886
+
1887
+ - **Repair boundaries hardened**: finalized runs cannot be reopened by stale repair reports, disallowed downstream artifact creation is blocked during repair, and no-op repairs are rejected unless a future explicit no-op path is added.
1888
+ - **Onboarding title mapping fixed**: DOCX heading configuration is now kept separate from onboarding brief titles.
1889
+
1890
+ ### Boundaries
1891
+
1892
+ - v0.8.4 is about safe parallelism foundations and deterministic repair routing. It is not a speed-improvement claim, output-quality claim, model-performance measurement, or semantic support signal.
1893
+ - `gates check` remains serial by default in the user-facing CLI. Parallel gate evaluation is currently helper-level opt-in infrastructure.
1894
+ - Scout chunk parallelism is a runtime contract only. MABW does not ship a Python Scout executor, semantic chunk extractor, or worker-output artifact append path.
1895
+ - Stage runtime/model provenance is recorded only when completion commands are called with explicit values; normal runtime handoffs do not automatically supply it yet.
1896
+
1897
+ ## [0.8.3] — 2026-06-16
1898
+
1899
+ ### Added
1900
+
1901
+ - **Claim Draft contract**: added experimental `claim_drafts.json` validation for source-grounded draft claims without `claim_id` fields.
1902
+ - **Claim Ledger freeze transaction**: added `multi-agent-brief state freeze-claim-ledger` so Python assigns deterministic `CL-####` IDs, writes canonical `claim_ledger.json`, records freeze metadata, and emits a `claim_ledger_frozen` event.
1903
+ - **Claim Ledger completion enforcement**: `state stage-complete --stage claim-ledger` now requires a matching freeze record for the current ledger bytes.
1904
+ - **Auditor support calibration contract**: Auditor role contracts now explicitly check overstatement, support-strength calibration, confidence mismatch, evidence-relation mismatch, and limitation leakage.
1905
+
1906
+ ### Changed
1907
+
1908
+ - **Claim Ledger role boundary tightened**: Claim Ledger agents now draft `claim_drafts.json` and no longer author canonical `claim_ledger.json`.
1909
+ - **Analyst/Auditor contracts aligned with frozen ledger semantics**: Analyst and Auditor read frozen `claim_ledger.json`, do not read `claim_drafts.json`, and must not edit the Claim Ledger.
1910
+ - **Generated runtime assets regenerated**: Claude, Codex, OpenCode, Hermes, and hand-maintained skill text now reflect the Claim Freeze boundary.
1911
+
1912
+ ### Boundaries
1913
+
1914
+ - v0.8.3 does not claim semantic proof, automatic semantic dedupe, output-quality improvement, autonomous repair, or Codex parity.
1915
+ - Claim IDs are deterministic for the same freeze input under `sorted_sequential_v1`; this is not an incremental ID-stability promise after draft sets change.
1916
+ - `claim_drafts.json` is a freeze input only. Downstream drafting, auditing, gates, source appendix, and finalize binding continue to use frozen `claim_ledger.json`.
1917
+
1918
+ ## [0.8.2] — 2026-06-15
1919
+
1920
+ ### Added
1921
+
1922
+ - **Role topology selector**: policy packs can select `default`, `strict`, or `human_assisted` role topology while preserving one canonical stage spec and the same accountable artifacts.
1923
+ - **Topology-satisfied stage recording**: default topology lets Scout write both `candidate_claims.json` and `screened_candidates.json`, then records Screener as satisfied by topology instead of fabricating an independent Screener execution history. Strict topology remains available for independent screening.
1924
+ - **Editor-new-fact quality gate**: stage-scoped quality gates now include a soft-by-default `editor_new_fact` check, backed by a Python-written Analyst draft snapshot, that flags editor-introduced numbers, claim references, and simple entity phrases. `--strict` can make those findings blocking.
1925
+ - **Topology-aware status output**: human `status` output now shows topology-satisfied stages such as `screener complete via scout`, without changing the JSON schema or runtime state.
1926
+ - **Packaged topology handoff smoke**: CI now verifies package-installed `init`/`run --workspace` handoff behavior for default topology and a strict-topology contract-base override.
1927
+
1928
+ ### Changed
1929
+
1930
+ - **Role source and generated assets aligned with topology**: Scout/Screener and Delivery Editor wording now reflects default/strict topology while keeping Claim Ledger, auditable draft, audit report, gate reports, event log, and delivery artifacts separate.
1931
+ - **Public docs aligned with topology**: README and support matrix wording now state that the default role assignment is shorter, but the accountability spine is not.
1932
+ - **Runtime-state decomposition completed for v0.8.2 foundations**: the runtime-state facade now exposes a pinned surface while helpers are split into manifest/workflow, artifact registry, event log, completion gates, and operations modules.
1933
+ - **Control-surface interpreters guarded**: run integrity, audit binding, quality gate binding, frozen artifact integrity, and stage-completion interpretation now have explicit structural tests to prevent helper drift.
1934
+ - **Legacy dead code removed**: orphaned connector/model/history/source-map modules and channel stubs were removed without changing the supported runtime path.
1935
+
1936
+ ### Boundaries
1937
+
1938
+ - Role topology convergence is not a speed-improvement claim and does not remove Claim Ledger, gate reports, audit report, event log, archive, or human-triggered delivery.
1939
+ - `editor_new_fact` is deterministic lexical detection, not semantic proof that every edit is supported.
1940
+ - The packaged topology smoke tests runtime handoff construction only. It does not bundle source-clone runtime kits or promote packaged `runtime install` beyond the existing support matrix.
1941
+
1942
+ ## [0.8.1] — 2026-06-14
1943
+
1944
+ ### Added
1945
+
1946
+ - **Control-trace timing projection**: status and run archives now expose event-log-derived timing buckets for completed, incomplete, unknown, or contaminated traces without mutating runtime state or claiming exact model runtime.
1947
+ - **Fast-rerun frozen fact-layer archive and import**: finalized run archives now include a hash-verified frozen fact layer, and `state import-fact-layer` can import a complete archived fact layer into a new workspace for same-evidence downstream reruns.
1948
+ - **Fast-rerun runtime handoff**: `run --recipe fast-rerun` now requires a valid imported fact layer, starts from Analyst, and explicitly avoids replaying source-discovery, Scout, Screener, or Claim Ledger history.
1949
+ - **Fast-rerun freshness and public fixture coverage**: imported fact layers are checked against the target workspace freshness window at delivery time, and public-safe fixtures cover clean import, no-delivery import state, and source-plan rejection.
1950
+ - **MABW-080 run registration**: `experiments 080 register-run` registers completed workspace runs into existing MABW-080 cases as `run_record.json` experiment metadata.
1951
+
1952
+ ### Changed
1953
+
1954
+ - **Run integrity normalization is shared and fail-closed on malformed persisted state**: read surfaces may project unknown/non-reference status for invalid control state, while persisted workflow integrity remains `clean` or `contaminated`.
1955
+ - **Run archive manifests now preserve fact-layer and timing projections**: archives record source evidence packs, input classification, candidate claims, screened candidates, Claim Ledger, timing, and fast-rerun freshness projections by hash.
1956
+ - **Experiment registration verifies archive bytes**: MABW-080 registration validates archived fact-layer file hashes and source-pack hashes before comparing the archive with the case frozen fact layer.
1957
+
1958
+ ### Boundaries
1959
+
1960
+ - v0.8.1 adds measurement infrastructure and fast-rerun control transactions. It does not score output quality, prove semantic truth, run 080 summaries, scaffold experimental conditions, or promote Codex to supported parity.
1961
+ - Fast-rerun is Experimental. It supports hash-verified same-evidence downstream rerun inspection; it is not a gate-skipping lite mode.
1962
+ - MABW-080 remains Experimental. `register-run` records run metadata only; `score-run`, `summarize`, manifestation assessment import, and condition scaffolding are not shipped in v0.8.1.
1963
+
1964
+ ## [0.7.5] — 2026-06-13
1965
+
1966
+ ### Added
1967
+
1968
+ - **Stage-scoped quality gate reports**: `gates check --stage auditor` and `gates check --stage finalize` now write separate authoritative reports under `output/intermediate/gates/`. The legacy `output/intermediate/quality_gate_report.json` remains a latest/compatibility projection and is no longer the frozen authority for both stages.
1969
+ - **Run integrity marker**: runtime state now records whether a run remains clean single-shot reference evidence or has become contaminated by reset, older-stage replay, or frozen-artifact mutation. Contaminated runs can still be completed locally, but should not be packaged as clean reference evidence.
1970
+ - **Deterministic repair router**: added `multi-agent-brief repair route` to map known gate/audit/control findings to the owning stage and allowed artifacts without executing repair or calling an agent.
1971
+ - **Codex experimental runtime kit hardening**: Codex custom-agent assets remain Experimental, with clearer workspace-local install and control-flow guidance.
1972
+
1973
+ ### Changed
1974
+
1975
+ - **Source-discovery evidence boundary tightened**: `source_candidates.yaml` is treated as planning/review only. It cannot be merged as evidence, and source-discovery completion requires durable source evidence instead of a plan-only artifact.
1976
+ - **Runtime/source hardening**: web-search configuration now rejects ambiguous modes, disabled search cannot run through `sources decide --search`, workspace `.env` loading is allowlisted, and invalid provider config no longer contributes source items.
1977
+ - **Audit binding moved into Python control state**: finalize verifies frozen Claim Ledger, audited brief, and audit report hashes through deterministic runtime state instead of trusting auditor-written binding metadata.
1978
+ - **Run archive added for finalized runs**: finalized runs are archived under `output/runs/<run_id>/` with delivery, intermediate, control files, and SHA-256 manifest entries so repeated weekly runs do not erase historical evidence chains.
1979
+ - **Run integrity contamination made transactional**: contamination state and `run_integrity_contaminated` events now commit together; event append failure rolls back workflow state, and duplicate contamination reasons are no-ops.
1980
+ - **Repair routing honors gate metadata**: router output now trusts existing `repair_owner`, `repair_stage_id`, and `repair_artifact_id` fields before falling back to deterministic heuristics.
1981
+ - **Docs-only CI safety**: docs-only changes now run public-safety, terminology, version, and release-consistency checks so README/docs cannot bypass release guardrails.
1982
+
1983
+ ### Boundaries
1984
+
1985
+ - v0.7.5 does not claim semantic proof, autonomous repair, automatic learning, Codex parity, or output-quality improvement.
1986
+ - Codex remains Experimental. Real-workspace control-flow E2E reached terminal delivery, but clean repair semantics and specialist parity are not yet promoted to supported-runtime claims.
1987
+ - `repair route` is a read-only router. It does not create repair plans, mutate artifacts, execute repair, or decide taste.
1988
+
1989
+ ## [0.7.4] — 2026-06-12
1990
+
1991
+ ### Added
1992
+
1993
+ - **Audit binding consistency check**: `finalize` now rejects stale audit reports that still mention claim IDs absent from the current Claim Ledger, record blocking audit findings, or carry stale ledger/brief binding metadata.
1994
+ - **Public failure study**: added a public-safe organoid-industry failure study showing how a readable brief can still overstate source support, and why v0.8 focuses on source-to-claim semantic support calibration.
1995
+
1996
+ ### Changed
1997
+
1998
+ - **Release public-safety check**: `check_release_consistency.py` now runs the tracked-file public-safety scan so release checks fail on local paths, token-like strings, environment-file references, or configured private terms.
1999
+ - **Source appendix wording**: public docs now state that source appendices are appended inside the reader delivery files when configured, while standalone `output/source_appendix.md` remains an audit/control copy.
2000
+
2001
+ ### Boundaries
2002
+
2003
+ - **Traceability, not semantic proof**: release-facing wording now states that registered source links show where a claim entered the workflow, but do not yet prove that each source semantically supports every sub-claim. Source-to-claim semantic support remains a v0.8 evaluation target.
2004
+ - **Distribution boundary**: v0.7.4 release notes use source clone plus demo scripts as the primary get-started path. Homebrew, curl, and PowerShell installer assets remain non-primary installer surfaces until separately packaged and smoke-tested.
2005
+
2006
+ ## [0.7.3] — 2026-06-12
2007
+
2008
+ ### Added
2009
+
2010
+ - **Release safety scan**: added `scripts/check_public_safety.py` and focused tests for public-safe release surfaces, including local path, token-like, environment-file, and configurable banned-term checks.
2011
+ - **Private onboarding guardrail**: root `onboarding.json` is ignored so personal onboarding answers do not accidentally enter release commits.
2012
+ - **Delivery artifact integrity**: `finalize_report.json` records delivery artifact hashes, and `multi-agent-brief deliver` rejects artifacts that changed after finalize.
2013
+
2014
+ ### Changed
2015
+
2016
+ - **Runtime prompt hardening**: generated Orchestrator and Claude command guidance now states that stage completion is defined by `state stage-complete`, not by artifact existence or natural-language completion claims.
2017
+ - **Configuration authority clarified**: screener/runtime guidance now treats `max_source_age_days` and `fail_on_stale_source` as authoritative config and forbids prompt-only freshness exceptions.
2018
+ - **Onboarding privacy boundary clarified**: `/mabw new` guidance now forbids inferring company or organization from maintainer identity, repo history, private memory, prior workspaces, local directories, or previous reports.
2019
+
2020
+ ### Boundaries
2021
+
2022
+ - v0.7.3 is a release-hardening patch over v0.7.2. It does not add new autonomous learning, role topology changes, output-quality scoring, public raw trace packs, or benchmark claims. The repo includes experiment/evaluation harnesses and public evaluation packets; these are measurement infrastructure, not a benchmark claim.
2023
+
2024
+ ## [0.7.2] — 2026-06-12
2025
+
2026
+ ### Added
2027
+
2028
+ - **Reader-final output gate**: `finalize` now records `finalize_report.json.reader_clean` and rejects reader-facing Markdown/DOCX/source appendix outputs that leak internal source markers, raw claim/source IDs, local paths, debug residue, process wording, or blank citation/source-index rows.
2029
+ - **Runtime completion transactions**: added `multi-agent-brief state stage-complete` and `state finalize-complete` for deterministic success-path bookkeeping. These commands validate and record completion claims; they do not execute stages, invoke agents, call `finalize`, or repair content.
2030
+ - **Claude Code five-verb writer entrypoint**: added `/mabw` for Claude Code with `new`, `run`, `status`, `feedback`, and `deliver`, plus `multi-agent-brief claude install` support for the Claude writer path.
2031
+ - **Improvement Ledger supersession hygiene**: added top-level immutable `supersedes_id`, deterministic duplicate proposal warnings, approved supersession fork rejection, non-materializable superseder warnings, and revert-time warnings when old guidance re-exposes.
2032
+ - **Read-only writer status**: added the writer-facing status model for current run status, source-trail surface readiness, approved reader preferences, and delivery guardrails without refreshing or mutating runtime state. It points to Claim Ledger / audit / source appendix surfaces rather than tracing individual numbers itself.
2033
+ - **Product-definition docs**: added the Chinese golden path, Chinese weekly-use script, and writer-facing trust map for the four product concepts behind v0.7.2.
2034
+ - **Public integration summary and launch checklist**: added a public-safe solar integration reference summary and a Chinese launch-validation checklist for golden-path self-test and fresh-clone pilot validation.
2035
+ - **On-ramp language**: added three entry paths ("look once", "run once", and "live with it") while keeping Claim Ledger, gates, human delivery, execution trace, and frozen snapshots as non-negotiable accountability surfaces.
2036
+ - **v1.0 freeze list**: added a maintainer-facing freeze checklist for runtime state, artifact contracts, gate reports, Improvement Ledger schema, handoff, eval-case runner actions, and deferred v0.8 surfaces.
2037
+ - **Improvement origin runtime metadata**: human-feedback Improvement Ledger proposals capture `origin_runtime` when runtime state exists; this is audit/rendering metadata only and is not used for routing, filtering, or materialization.
2038
+
2039
+ ### Changed
2040
+
2041
+ - **Success path uses transactions**: generated handoff/runtime guidance now routes successful stage progress through `state stage-complete` and terminal delivery through `state finalize-complete`; `state decide` remains for retry, repair, human review, and block decisions.
2042
+ - **Delivery path hardened**: `/mabw deliver` and runtime handoff guidance require gates, strict state checks, final rendering, reader-final cleanliness, and `finalize-complete` before terminal completion is recorded.
2043
+ - **Improvement materialization remains computed**: superseded guidance is a read-time/materialization computation, not a stored ledger status. Reverting a superseder can re-expose the previous approved entry by design.
2044
+ - **Five-verb language clarified**: `doctor` remains a diagnostic/maintainer command, not a sixth writer verb. Claude Code is the first-class writer / five-verb path; Hermes remains a supported delegated/scheduled runtime path.
2045
+
2046
+ ### Boundaries
2047
+
2048
+ - v0.7.2 does not add autonomous learning, automatic repair, automatic approval, output-quality scoring, role-topology compression, manifestation metrics, retrieval memory, or runtime-specific guidance filtering.
2049
+ - v0.7.2 does not include `operator_reported_model`; model/run observation metadata is deferred to v0.7.3 / v0.8 scorecard design.
2050
+ - v0.7.2 does not include generic ledger provenance fields, `improvement/intake.jsonl`, or `improvement/candidates.jsonl`; intake/candidate parking-lot work is deferred to v0.7.3+.
2051
+ - v0.7.2 does not include role topology convergence, guidance manifestation reports, runtime-specific guidance filtering, or a public A-grade reference run.
2052
+
2053
+ ## [0.7.0] — 2026-06-10
2054
+
2055
+ ### Added
2056
+
2057
+ - **Improvement Ledger lifecycle**: added `multi-agent-brief improve propose/list/show/approve/reject/revert/stats/validate/rebuild` for human-authored, human-approved reader-preference guidance.
2058
+ - **Improvement Memory projection**: approved materializable guidance is deterministically projected into `improvement/memory.md`; `improve rebuild` writes only that projection and does not mutate runtime state, handoff, events, or snapshots.
2059
+ - **Frozen per-run Improvement Memory snapshot**: `run`, `start`, and `handoff` freeze eligible guidance into `output/intermediate/improvement_memory_snapshot.md` and expose only that snapshot through handoff.
2060
+ - **Runtime manifest improvement block**: `runtime_manifest.json.improvement` records `ledger_sha256`, `memory_sha256`, `snapshot_path`, `snapshot_sha256`, and `materialized_entry_ids` for the active run.
2061
+ - **Product-definition guardrail**: machine-checkable feedback issues stay in feedback/repair/gate surfaces unless a human rewrites them as persistent audience guidance.
2062
+ - **Public-safe eval cases**: added packaged eval cases proving unapproved entries are not materialized, approved guidance is frozen, and reverted entries are removed from the next snapshot.
2063
+ - **Improvement module docs**: added `docs/modules/improvement.md` for command lifecycle, files, semantics, and non-goals.
2064
+
2065
+ ### Changed
2066
+
2067
+ - **Public roadmap and support status**: v0.7.0 now documents Improvement Ledger / Memory as the implemented public-control-surface slice while keeping FrictionStore, autonomous learning, retrieval memory, runtime-specific filtering, and output-quality validation deferred.
2068
+ - **Packaged eval fixtures**: package data now includes public-safe `improvement/ledger.jsonl` and `improvement/memory.md` eval fixtures.
2069
+
2070
+ ### Boundaries
2071
+
2072
+ - v0.7.0 does not add autonomous learning, automatic repair, semantic proof, output quality guarantees, RAG/retrieval memory, runtime-specific guidance filtering, ledger compaction, policy-pack authoring, or automatic workflow execution. `FeedbackIssue` is evidence, not guidance; guidance must be human-authored and human-approved.
2073
+
2074
+ ## [0.6.9] — 2026-06-09
2075
+
2076
+ ### Added
2077
+
2078
+ - **Workspace runtime kit installer**: added `multi-agent-brief runtime install --workspace <workspace> --runtime opencode|claude|all` to copy OpenCode/Claude Code project commands, agents, and a small workspace skill into the business workspace.
2079
+ - **Runtime asset inventory**: added `docs/runtime-asset-inventory.md` and `scripts/check_runtime_asset_parity.py` to distinguish packaged contract/eval data from source-clone-only runtime assets.
2080
+ - **Runtime recipes**: added `docs/runtime-recipes.md` to document full subagent and compact human-assisted workflow recipes without adding a Python workflow mode.
2081
+ - **Install smoke hardening**: expanded non-dev CI smoke to check state show/check, absence of stage outputs after `run`, package-only runtime asset boundaries, and wheel install behavior.
2082
+
2083
+ ### Changed
2084
+
2085
+ - **Install/runtime truth**: README, README_en, support matrix, roadmap, and architecture docs now distinguish package-installed CLI behavior from source-clone runtime assets such as `.agents/`, `.claude/`, `.opencode/`, `.codex/`, and the Hermes plugin source tree.
2086
+ - **Workspace-local runtime guidance**: users can install runtime assets into a workspace to avoid OpenCode/Claude reading the MABW source checkout during normal workspace execution.
2087
+
2088
+ ### Boundaries
2089
+
2090
+ - v0.6.9 is a stabilization release. It does not add FrictionStore, improvement proposal commands, policy-pack authoring, automatic repair, automatic source fetching, or a Python brief-generation pipeline. Runtime kit selection and installation do not execute the brief workflow.
2091
+
2092
+ ## [0.6.8] — 2026-06-09
2093
+
2094
+ ### Added
2095
+
2096
+ - **Reader-facing source appendix**: `multi-agent-brief finalize` can generate `output/source_appendix.md` from sources cited in `output/intermediate/audited_brief.md` and resolved through `output/intermediate/claim_ledger.json`.
2097
+ - **Source appendix compatibility**: `source_appendix` is the new output format name; legacy `source_map` output format requests are treated as a compatibility alias.
2098
+ - **Public-safe eval case**: added a packaged eval case proving finalize can write a reader-facing appendix without leaking raw claim IDs, source IDs, evidence text, local paths, or unused ledger sources.
2099
+
2100
+ ### Changed
2101
+
2102
+ - **Formatter guidance**: formatter role contracts and runtime command surfaces now mention configured source appendix rendering and its reader-facing safety boundary.
2103
+ - **Default output format**: new onboarding/default profiles now use `source_appendix` instead of the old `source_map` label.
2104
+
2105
+ ### Boundaries
2106
+
2107
+ - The source appendix is a reader-facing source list, not source evidence, semantic proof, provenance, a runtime gate, or a workflow execution artifact. It does not fetch sources, rewrite claims, create citations, modify the Claim Ledger, or expose internal `[src:CLAIM_ID]` markers in final reader artifacts.
2108
+
2109
+ ## [0.6.7] — 2026-06-09
2110
+
2111
+ ### Added
2112
+
2113
+ - **Orchestrator Control Switchboard**: added `multi-agent-brief controls build-switchboard/show/select/validate` for deterministic runtime control recommendations and Orchestrator selection records.
2114
+ - **Switchboard control files**: `run`, `start`, and `handoff` now create `output/intermediate/orchestrator_control_switchboard.json` and expose it through `control_switchboard_files`; `control_selections.json` is created only when the Orchestrator explicitly records a selection.
2115
+ - **Runtime event trace**: event logs can record switchboard build, selection, and validation events.
2116
+ - **Public-safe eval case**: added a packaged eval case proving that selecting a control does not execute it.
2117
+
2118
+ ### Changed
2119
+
2120
+ - **Runtime guidance**: Hermes, Claude Code, OpenCode, Codex, and manual handoff text now instruct the Orchestrator to read the switchboard and record enable/defer/reject selections before explicitly executing selected controls.
2121
+
2122
+ ### Boundaries
2123
+
2124
+ - Selection is not execution. `controls select --selection enable` records Orchestrator intent only; it does not run quality gates, feedback planning, provenance projection, source discovery, local/social signal collection, repair, or subagents. Privacy-sensitive controls require explicit human approval before they are execution-ready.
2125
+
2126
+ ## [0.6.6] — 2026-06-09
2127
+
2128
+ ### Added
2129
+
2130
+ - **Audience Profile Runtime Surface**: added workspace-local `audience_profile.md` as a human-editable reader taste and department preference file.
2131
+ - **Frozen per-run snapshot**: `run`, `start`, and `handoff` now create or reuse `output/intermediate/audience_profile_snapshot.md` so the active run uses stable taste context even if the live profile is edited later.
2132
+ - **Handoff references**: `agent_handoff.json` and `agent_handoff.md` now expose `audience_memory_files` separately from runtime state, feedback, quality gate, provenance, and expected workflow artifacts.
2133
+ - **Runtime event trace**: event logs can record `audience_profile_snapshot_created` with profile/snapshot paths and hashes.
2134
+
2135
+ ### Changed
2136
+
2137
+ - **Workspace init**: onboarding, direct init, and demo init now create an audience profile template.
2138
+ - **Runtime guidance**: Hermes, Claude, OpenCode, Codex, and manual handoff text now instruct the Orchestrator to read the snapshot at run start, summarize relevant taste guidance, and pass it to delegated roles as context.
2139
+
2140
+ ### Boundaries
2141
+
2142
+ - Audience profile files are runtime context, not source evidence, artifact contracts, quality gates, provenance graph nodes, or stage blockers. Python creates, freezes, exposes, and records the context; it does not enforce taste, update the profile automatically, route controls, or implement a long-term memory system.
2143
+
2144
+ ## [0.6.5] — 2026-06-09
2145
+
2146
+ ### Added
2147
+
2148
+ - **Provenance projection CLI**: added `multi-agent-brief provenance build`, `provenance show --json`, and `provenance validate` for deterministic workspace-local audit/debug graphs.
2149
+ - **Provenance control artifact**: added optional `output/intermediate/provenance_graph.json` as a projection of existing runtime state, artifact registry, event log, Claim Ledger, feedback, repair, and quality gate control files.
2150
+ - **Provenance eval case**: added a packaged public-safe eval case that validates provenance graph creation without leaking raw evidence text.
2151
+ - **Runtime and handoff references**: handoff JSON/Markdown, Hermes prompts, and Hermes plugin references now expose optional provenance state separately from required workflow artifacts.
2152
+
2153
+ ### Changed
2154
+
2155
+ - **Artifact activation**: `provenance_graph.json` stays `expected/not_checked` until `provenance build` creates it, so fresh workspaces are not blocked by missing provenance.
2156
+ - **Runtime events**: event logs can record provenance build/validate outcomes without turning the event log into the graph source of truth.
2157
+ - **Reference semantics**: provenance edges use citation wording such as `claim_cites_source`; the graph does not assert semantic truth or that a source proves a claim.
2158
+
2159
+ ### Boundaries
2160
+
2161
+ - Provenance projection is optional audit/debug tooling. It does not execute workflow stages, replay a DAG, fetch sources, edit briefs, execute repair, verify semantic truth, or gate `finalize` by default.
2162
+
2163
+ ## [0.6.4] — 2026-06-08
2164
+
2165
+ ### Added
2166
+
2167
+ - **Public-safe evaluation cases CLI**: added `multi-agent-brief eval-cases list`, `eval-cases validate`, and `eval-cases run` for deterministic developer/CI regression checks.
2168
+ - **Packaged eval fixtures**: bundled five public-safe workspace control cases plus one Hermes static invariant case so non-editable installs can run the default eval suite.
2169
+ - **Fixture leakage scanner**: eval-case validation rejects shell-string commands, non-synthetic manifests, local paths, unsafe URLs, email domains, token-shaped values, prompt labels, and non-synthetic claim/source IDs.
2170
+ - **Claude Code install helper**: added `multi-agent-brief claude install` to install `/generate-brief` and MABW subagents into a user-level Claude Code directory for Claude Desktop Code tab discovery.
2171
+
2172
+ ### Changed
2173
+
2174
+ - **Structured eval actions**: eval cases dispatch allowlisted actions such as `gates.check`, `feedback.ingest`, and `state.decide` instead of parsing or executing shell commands.
2175
+ - **Stage-explicit fixtures**: workspace cases declare `initial_stage` and prepare temporary runtime state explicitly, so cases validate control-surface behavior without executing workflow stages.
2176
+ - **Partial assertions**: eval results compare only stable control outputs such as exit codes, expected control artifacts, gate findings, feedback issues, workflow state, and static text invariants.
2177
+ - **Claude Code setup guidance**: README and setup scripts now include the optional install step for users who run Claude Code from Claude Desktop with a workspace or non-repository project folder selected.
2178
+
2179
+ ### Boundaries
2180
+
2181
+ - Evaluation cases are developer/CI regression tools, not workflow artifacts. They do not score prose, run subagents, execute repair, fetch sources, call an LLM judge, or add `evaluation_report.json` to runtime artifact contracts.
2182
+
2183
+ ## [0.6.3] — 2026-06-08
2184
+
2185
+ ### Added
2186
+
2187
+ - **Quality Gates CLI**: added `multi-agent-brief gates check`, `gates show --json`, and `gates validate` for deterministic material-fact, freshness, and target-relevance checks.
2188
+ - **Quality gate control artifact**: added optional `output/intermediate/quality_gate_report.json` as a separate Orchestrator control artifact.
2189
+ - **Runtime gate events**: event logs now record quality gate checks and whether they produced blocking findings.
2190
+
2191
+ ### Changed
2192
+
2193
+ - **Current-stage gate blocking**: `state check` and `state decide` now enforce blocking quality gate findings only for the current stage.
2194
+ - **Gate-stage and repair-target separation**: quality gate findings now distinguish the stage being blocked from the stage/artifact that should own repair.
2195
+ - **Required gate semantics**: `quality_gates.enabled` can require `quality_gate_report.json` before configured current stages continue.
2196
+ - **Runtime handoff references**: handoff JSON/Markdown, Hermes prompts, and Hermes plugin references expose optional quality gate state separately from expected workflow artifacts.
2197
+ - **Hermes main path**: Hermes guidance now runs `gates check`, `state check --strict`, and `state decide` before `finalize`; `finalize` alone is not a quality-gate executor.
2198
+ - **Gate boundaries**: quality gates remain deterministic validators; they do not live-fetch market data, recrawl sources, rewrite briefs, execute repair, or make semantic truth judgments.
2199
+
2200
+ ### Fixed
2201
+
2202
+ - **Optional control artifact activation**: `quality_gate_report.json` stays `expected/not_checked` until gates are explicitly run or enabled, avoiding misleading `missing` status in normal runs.
2203
+ - **Reader-facing checks**: `output/brief.md` quality gates do not require internal `[src:CLAIM_ID]` markers.
2204
+
2205
+ ## [0.6.2] — 2026-06-08
2206
+
2207
+ ### Added
2208
+
2209
+ - **Feedback CLI**: added `multi-agent-brief feedback ingest`, `feedback plan`, `feedback resolve`, `feedback show --json`, and `feedback validate` for structured feedback issues, deterministic repair plans, and explicit resolution state.
2210
+ - **Feedback control artifacts**: added `feedback_issues.json`, `repair_plan.json`, and conditional `delta_audit_report.json` as optional Orchestrator control artifacts.
2211
+ - **Feedback event trace**: runtime event logs now record feedback issue creation, issue planning, and repair plan creation events.
2212
+
2213
+ ### Changed
2214
+
2215
+ - **Stage-scoped feedback blocking**: blocking feedback only affects the current stage, so future-stage feedback does not block a fresh or earlier-stage workspace.
2216
+ - **Runtime handoff references**: handoff JSON/Markdown and Hermes surfaces now expose optional feedback state files separately from expected workflow artifacts.
2217
+ - **Bounded repair planning**: repair plans propose bounded Orchestrator decisions but do not execute repair or edit brief artifacts automatically.
2218
+
2219
+ ### Fixed
2220
+
2221
+ - **Feedback/evidence separation**: feedback issue fields avoid claim-evidence naming and keep human feedback out of source evidence artifacts.
2222
+
2223
+ ## [0.6.1] — 2026-06-08
2224
+
2225
+ ### Added
2226
+
2227
+ - **Minimum runtime state**: `multi-agent-brief run`, `start`, and `handoff` now initialize Orchestrator control files: `runtime_manifest.json`, `workflow_state.json`, `artifact_registry.json`, and `event_log.jsonl`.
2228
+ - **State CLI**: added `multi-agent-brief state init`, `state check`, `state show --json`, and `state decide` for runtime inspection, artifact status refresh, and Orchestrator decision recording.
2229
+ - **Runtime state references in handoff**: `agent_handoff.json` and `agent_handoff.md` now expose `runtime_state_files` separately from workflow `expected_artifacts`.
2230
+
2231
+ ### Changed
2232
+
2233
+ - **Stage-scoped artifact blocking**: required artifacts block only the consumer stage that needs them, so a fresh workspace starts with downstream artifacts as `expected/pending` rather than globally blocked.
2234
+ - **Artifact path contract**: artifact registry paths are workspace-root relative, and `input_classification` now points to the CLI's actual default output path.
2235
+ - **Runtime docs and Hermes surfaces**: runtime prompts and public docs now describe the v0.6.1 minimum state layer while keeping feedback repair and provenance graph work deferred.
2236
+
2237
+ ### Fixed
2238
+
2239
+ - **Manifest semantic split**: v0.6.1 uses `runtime_manifest.json` for Orchestrator runtime state and leaves the legacy pipeline `run_manifest.json` semantics untouched.
2240
+
2241
+ ## [0.6.0] — 2026-06-08
2242
+
2243
+ ### Added
2244
+
2245
+ - **Explicit Orchestrator contract runtime**: added shared contract references for Orchestrator authority, stage order, artifact expectations, policy shell, and decision vocabulary.
2246
+ - **Runtime role parity**: Hermes, Claude Code, Codex, OpenCode, and manual handoff now identify the Orchestrator as the runtime main agent and use the same stage decision language.
2247
+ - **Orchestrator architecture docs**: added bilingual public architecture pages plus implementation notes for v0.5.9 prep and v0.6.0 contract scope.
2248
+ - **Packaged contract configs**: bundled Orchestrator contract YAML files inside the Python package so non-editable installs can run `multi-agent-brief run` without a source checkout.
2249
+
2250
+ ### Changed
2251
+
2252
+ - **Runtime handoff artifacts**: `agent_handoff.json` and `agent_handoff.md` now include contract references and the shared Orchestrator control loop.
2253
+ - **Hermes plugin alignment**: Hermes plugin handoff now passes the detected repo workdir when available, and its delegated workflow reference matches `stage_specs.yaml`.
2254
+ - **README updates**: both Chinese and English README files now point to the v0.6 Orchestrator architecture and state the v0.6.0 boundary.
2255
+ - **Support matrix**: removed the remaining `BriefPipeline` interface wording; the old Python pipeline is marked removed.
2256
+
2257
+ ### Fixed
2258
+
2259
+ - **Non-editable install handoff**: fixed `multi-agent-brief run --workspace ...` failing after non-editable archive/package installation because contract files were only available in the source repo.
2260
+ - **Release consistency script**: release checks no longer import an ambient installed package when validating source version consistency.
2261
+
2262
+ ## [0.5.8] — 2026-06-07
2263
+
2264
+ ### Changed
2265
+
2266
+ - **版本号 0.5.7 → 0.5.8**:上游 `check_release_consistency.py` 要求版号与 tag 一致;0.5.7 从未打 tag,本次统一发布。
2267
+ - **README 清理**:移除尚不可用的 CLI-only curl 安装路径和 Homebrew 引用(打包工作推迟到 v0.7)。
2268
+ - **旧 `prepare` 叙事清理**:删除五份遗留 impl-plan 文档(`v0.4.0`、`v0.5.0`、`v0.5.1-*`、`v0.5.5-hermes-adapter`)和 `v1-pre-mas-refactor-roadmap.zh-CN.md`——旧执行计划和引用全部移除。最新路线图见 `docs/roadmap.zh-CN.md`。
2269
+
2270
+ ### Added
2271
+
2272
+ - **`docs/support-matrix.md`**:建表明确所有能力的 Supported / Experimental / Interface Only / CLI-only / Deprecated 状态。
2273
+ - **Issue [#49](https://github.com/Stahl-G/multi-agent-brief-workflow/issues/49) 边界明确化**:README 安装文档澄清 — agent assets(`.agents/`、`.claude/` 等)需 source clone 才能使用子智能体工作流。pip-only 安装仅提供确定性 CLI 命令。正式打包推迟到 v0.7。
2274
+ - **版本管理自动化**:`VERSION` 为唯一真源;新增 `scripts/bump_version.py`(同步到所有文件)、`scripts/check_version_consistency.py`(CI 检查)、`scripts/release.sh`(自动发布)。`__init__.py` 改为 `importlib.metadata.version()` 动态读取。
2275
+
2276
+ ## [0.5.7] — 2026-06-07
2277
+
2278
+ ### Added
2279
+
2280
+ - **`inputs classify` CLI 命令**:`multi-agent-brief inputs classify --config <path>` 扫描 `input/` 各子目录,按角色(evidence / feedback / instruction / context)分类输出 `input_classification.json`,作为 Scout 之前的输入治理门禁。
2281
+ - **Scout 技能合约收紧**:Scout 限定只从 `input/sources/`(和 `input/` 根目录,向后兼容)提取声明。`feedback/`、`instructions/`、`context/` 中的文件被显式排除——它们作为编辑指导、任务要求和背景参考路由给 Editor/Analyst,不进入 Claim Ledger。
2282
+ - **SourceItem `input_subdir` 元数据**:`ManualProvider._load_local_path()` 写入 `metadata["input_subdir"]`(值如 `"sources"`、`"root"`、`"feedback"`),标记文件所属输入子目录。
2283
+ - **Hermes adapter / start_commands / docs**:`inputs classify` 的 "(if available)" 后缀已移除,命令现已正式可用。
2284
+
2285
+ ## [0.5.6] — 2026-06-07
2286
+
2287
+ ### Changed
2288
+
2289
+ - **Thin CLI router**: `main.py` reduced from 1512 to 134 lines. Every command group owns its subparser registration and handler in a dedicated `cli/*_commands.py` module. No user-visible behavior changes.
2290
+ - **Generator scope**: `scripts/generate_agent_configs.py` now generates only platform adapters (`codex`, `claude`, `docs`, `opencode`). `agents_md` and `skills` targets removed. `--allow-prompt-overwrite` flag removed.
2291
+ - **Anthropic Skills convergence**: All 17 `.agents/skills/*/SKILL.md` rewritten as short capability contracts with `Scope / Purpose / Use When / Inputs / Outputs / Work / Handoff` structure. Frontmatter descriptions are concrete routing instructions with artifact paths and pipeline ordering.
2292
+ - **Hermes progressive disclosure**: Hermes skill SKILL.md kept short (~60 lines). Detailed `delegate_task` templates, cron patterns, and source cache contract moved to `references/`.
2293
+ - **Formatter role updated**: `configs/agent_roles.yaml` output_contract replaced with actual pipeline artifacts. Formatter role description updated to reader-facing finalize semantics from the old "preparation artifacts" contract.
2294
+ - **Examples workspace**: `examples/workspaces/weekly-brief-zh/` added as a concrete MABW workspace reference.
2295
+
2296
+ ### Added
2297
+
2298
+ - `.agents/AGENTS.md` — skill routing doc
2299
+ - `.agents/hermes-skills/multi-agent-brief-hermes/references/` — 3 progressive-disclosure reference files
2300
+ - `tests/test_skill_contracts.py` — validates SKILL.md structure
2301
+ - `tests/test_generator_boundaries.py` — confirms generator only touches platform adapters
2302
+
2303
+ ## [0.5.5] — 2026-06-07
2304
+
2305
+ ### Changed
2306
+
2307
+ - **Subagent-first runtime**: Python `BriefPipeline` and `multi-agent-brief prepare` removed. Brief generation is now exclusively the external subagent workflow: scout → screener → claim-ledger → analyst → editor → auditor → finalize.
2308
+ - **Prompt hygiene**: all agent role Hard Rules converted to positive Guardrails language in `configs/agent_roles.yaml` and all generated agent configs.
2309
+ - **Hermes delegate_task native workflow**: Hermes adapter rewritten to use `delegate_task` subagents as the native runtime. Parent agent orchestrates; children run scout, screener, claim-ledger, analyst, editor, and auditor tasks. Cron handles scheduling; `delegate_task` handles per-run child dispatch. No longer routes users to Claude Code.
2310
+ - **Init wizard layout**: new workspaces create `input/sources/README.md` instead of `input/README.md`.
2311
+
2312
+ ### Added
2313
+
2314
+ - `tests/test_subagent_first_contract.py`: anti-regression tests enforcing no `prepare` in user-facing docs, no `ScoutAgent`/`AnalystAgent` class names in source, and Python-commands-are-support-tools contract.
2315
+
2316
+ ### Removed
2317
+
2318
+ - `src/multi_agent_brief/agents/` directory (Python fake agent runtime).
2319
+ - `src/multi_agent_brief/inputs/` directory (stale empty package).
2320
+
2321
+ ## [0.5.3] — 2026-06-06
2322
+
2323
+ ### Fixed
2324
+
2325
+ - **Selector/quality gate conflict**: `selector.max_items` default raised from 8 to 20, matching `min_selected_claims` in audience profiles. Mapper defaults also aligned.
2326
+ - **Epistemic blocks no longer replace reader-facing brief**: `analysis_blocks.json` and `epistemic_draft` are now intermediate governance artifacts. The reader-facing `brief.md` / `brief.docx` uses the legacy prose format with Executive Summary.
2327
+ - **Confidence label**: changed from `100%` percentage (triggered audit `number_without_source` false positive) to qualitative `高/中/低` (High/Medium/Low).
2328
+
2329
+ ### Added
2330
+
2331
+ - **Epistemic Presentation Layer** (PR ac0cefa): AnalysisBlock builder, renderer, limitation hygiene audit, case applicability check. Intermediate artifacts: `analysis_blocks.json`, `limitation_hygiene_report.json`.
2332
+ - **Version bump to 0.5.3**: pyproject.toml, __init__.py, README, CHANGELOG.
2333
+
2334
+ ## [0.5.2] — 2026-06-06
2335
+
2336
+ ### Fixed
2337
+
2338
+ - **Dynamic dates in demo config**: `report.date` changed from hardcoded `"2026-06-02"` to `"auto"` in demo workspace and `examples/basic_market_brief`. Demo input files now use dynamic dates (`_demo_published_at()`) so sources never become stale.
2339
+ - **DOCX default in demo**: demo config now includes `docx` in `output.formats` by default. No more CI patching needed for DOCX smoke.
2340
+
2341
+ ### Added
2342
+
2343
+ - **Finalize delivery gate** (PR #48): deterministic `finalize_reader_outputs()` strips `[src:CLAIM_ID]` from `audited_brief.md` before writing reader-facing `brief.md` / named md / docx. CLI subcommand: `multi-agent-brief finalize --config <workspace>/config.yaml`.
2344
+ - **Golden smoke test** (CI): new `golden-smoke` job verifies all demos (reference, basic, onboarding) produce non-empty, auditable, renderable output with at least 1 claim.
2345
+ - **Finalize workflow documentation** in README: clarifies finalize is an optional post-pipeline step for agent-assisted workflows, not part of the core deterministic pipeline.
2346
+
2347
+ ### Changed
2348
+
2349
+ - **CI: CLI smoke input date refresh**: example input dates are dynamically patched to yesterday before running CLI smoke test.
2350
+ - **`init_wizard.py`**: `DEMO_NEWS` and `DEMO_MARKET_DATA` converted from constants to functions (`_build_demo_news()`, `_build_demo_market_data()`) with dynamic `published_at` dates.
2351
+
2352
+ ## [0.5.1] — 2026-06-06
2353
+
2354
+ ### Added
2355
+
2356
+ - **Local Signal Discovery** (Issue #44): deterministic support for non-English market and local consumer signal discovery. The system can now generate local-language search tasks, produce `collector_tasks.json` for manual/OpenCLI collection, parse `local_signal_samples.jsonl`, and generate `local_signal_report.json` with signals found and data gaps.
2357
+ - **`local_signal_planner.py`**: core module with `MARKET_PLATFORM_HINTS` (9 markets: Vietnam, Japan, China, Indonesia, Thailand, Brazil, Mexico, Germany, Korea), `build_local_signal_tasks()`, `parse_local_signal_samples()`, `generate_local_signal_report()`.
2358
+ - **`opencli_local_signal_adapter.py`**: local evidence processor for screenshots, audio, and text exports. OpenCLI is optional — pipeline works without it.
2359
+ - **`collector_tasks.json`**: execution plan for manual/browser/OpenCLI collection with privacy rules and instructions.
2360
+ - **`local_signal_report.json`**: intermediate artifact recording signals found and data gaps per market/language/platform.
2361
+ - **`build_search_tasks_with_metadata()`**: new function in `decider.py` that preserves search task metadata (topic, market, language, platform_group, signal_type) through pipeline injection.
2362
+ - **3 new audit rules**:
2363
+ - `LOCAL_SIGNAL_CLAIM_001`: consumer pain-point claims require consumer-discussion or platform-data evidence.
2364
+ - `LOCAL_SIGNAL_PROVENANCE_001`: local signal claims require sample metadata (platform, market, collected_at, access_level, sample_type, collector).
2365
+ - `LOCAL_SIGNAL_PRIVACY_001`: personal data from local signal samples must not enter final brief.
2366
+ - **47 new tests** covering task generation, market hints, collector tasks, source candidates, search queries, sample parsing, report generation, and audit rules.
2367
+
2368
+ ### Changed
2369
+
2370
+ - **`sources/decider.py`**: `build_search_queries()` now appends local-language queries from `local_signal_planner`. `generate_source_candidates()` includes `local_social_listening_tasks`. `merge_candidates_to_sources()` injects local tasks into `web_search.search_tasks` with metadata.
2371
+ - **`core/pipeline.py`**: search task injection uses `build_search_tasks_with_metadata()` for metadata preservation. Generates `collector_tasks.json` and `local_signal_report.json` when `local_signal_discovery` is enabled.
2372
+ - **`agents/formatter.py`**: persists `local_signal_report.json` to `output/intermediate/`.
2373
+ - **`audit/rule_packs.py`**: registered 3 new local signal finding types.
2374
+
2375
+ ### Non-goals (explicitly excluded)
2376
+
2377
+ - No RAG / vector database / embedding-based retrieval.
2378
+ - No browser automation or platform crawling.
2379
+ - No login-wall bypass or unauthorized scraping.
2380
+ - No OpenCLI MCP server integration — OpenCLI is treated as local evidence processor only.
2381
+
2382
+ ## [0.5.0] — 2026-06-06
2383
+
2384
+ ### Added
2385
+
2386
+ - **Official Workflow Harness**: reference workflow demo with synthetic data, smoke tests, and artifact contract.
2387
+ - **Final Clean Gate**: clears internal markers from reader-facing output.
2388
+ - **Audience Profiles**: different brief structures and audit thresholds for management, research, IR, policy, support audiences.
2389
+ - **DOCX Templates**: executive_brief, research_note, formal_internal_report templates with rendered-output validation.
2390
+ - **Source Coverage Report**: configurable coverage dimensions with research gaps separation.
2391
+ - **Policy & Regulatory Risk Module**: second analysis module with policy events, risk register, applicability questions.
2392
+ - **Minimal HistoryStore**: file-backed storage for previous briefs and claim ledgers with repeat/novelty tracking.
2393
+ - **Editorial Governance Rule Packs**: quality checks for factual density, business advice, comparable cases, historical analogies, must-preserve facts.
2394
+ - **Effort Budgets**: deterministic runtime limits with budget levels (low, medium, high, xhigh).
2395
+ - **Pipeline Exit Codes**: structured exit codes (0/1/2) for runtime/config fatal and quality gate failures.
2396
+ - **Manifest Stage Status**: trustworthy stage status detection from artifacts and summary text.
2397
+ - **Final Quality Gate**: FinalQualityAuditAgent wired into production pipeline with audience profile thresholds.
2398
+ - **CI Gate Scripts**: release consistency, capabilities, and reference workflow smoke checks integrated into CI.
2399
+
2400
+ ### Fixed
2401
+
2402
+ - **Test Warnings**: resolved ResourceWarning and UserWarning in test suite.
2403
+ - **Search Backend Selection**: improved multi-backend support with proper state machine (disabled/runtime_tool/external_api/configure_later).
2404
+ - **Source Coverage Recency**: use report date instead of current time for recency calculation.
2405
+ - **SourceConfig Validation**: validate enabled_providers must be list[str].
2406
+ - **0 Sources Coverage**: return 0% coverage instead of 100% when no sources collected.
2407
+ - **Final Clean Metadata**: write final_clean_status to audit_report.metadata.
2408
+
2409
+ ## [0.4.0] — 2026-06-05
2410
+
2411
+ ### Added
2412
+
2413
+ - **Claim Schema v2**: new epistemic fields on `Claim` — `schema_version`, `epistemic_type` (observed/interpreted/hypothesis/action/analogy), `evidence_relation` (direct/indirect/inferred/analogous), `applicability_reason`, `limitations`.
2414
+ - **Epistemic audit gates**: deterministic auditor now checks hypothesis-high-confidence misuse, action-without-basis, analogy-without-limitations, and analogy-direct-relation.
2415
+ - **Contracts package**: new `src/multi_agent_brief/contracts/` with `Contract` base class, `SchemaRegistry`, and contracts for `SourceItem`, `CandidateItem`, `Claim` (v1+v2), `AuditReport`, `MarketEvent`, `AnalysisCard`. Includes `FieldViolation`, `ContractError`, and claim v1→v2 migration.
2416
+ - **Backward-compatible migration**: `Claim.from_dict()` auto-fills v2 fields from `claim_type` for v1 ledger data.
2417
+ - **Run Manifest**: every `prepare` run now writes `output/intermediate/run_manifest.json` with run_id, config_hash, provider/module status, source/claim counts, audit status, artifact paths and SHA-256 hashes, and pipeline stage results.
2418
+ - **Semantic audit status**: `NoOpSemanticAuditAgent` now returns `not_configured` instead of faking a pass. `CompositeAuditAgent` tracks `semantic_status` in metadata. Manifest includes `semantic_status` field.
2419
+ - **Audit Finding Taxonomy**: `AuditFinding` gains `blocking_level` (editor_fixable/analyst_blocking/source_blocking/configuration_error/rendering_error/safety_blocking) and `repair_owner` (editor/analyst/source/configuration/rendering/safety). All 25+ finding types tagged via `rule_packs.py`.
2420
+ - **Release Consistency Gate**: `scripts/check_release_consistency.py` verifies pyproject.toml, __init__.py, README.md, README_en.md, CHANGELOG.md, and generated agent configs are version-synced. Integrated into CI.
2421
+
2422
+ ## [0.3.5] — 2026-06-05
2423
+
2424
+ ### Added
2425
+
2426
+ - Init wizard auto-recommends capabilities based on focus areas after workspace creation.
2427
+
2428
+ ## [0.3.4] — 2026-06-05
2429
+
2430
+ ### Added
2431
+
2432
+ - **Capability Center**: new `src/multi_agent_brief/capabilities/` package with registry, readiness detection, and recommendation engine.
2433
+ - **`multi-agent-brief features`**: categorized feature catalog with status symbols (✓/!/○/—). Supports `--info <id>`, `--json`, and `<workspace>` arguments.
2434
+ - **`multi-agent-brief recommend`**: deterministic keyword→capability recommendation rules. Supports `--text`, `--json`, and `<workspace>` arguments.
2435
+ - **`multi-agent-brief setup`**: apply capability recommendations to a workspace with safe YAML merge. Supports `--dry-run` and `--from-plan` arguments.
2436
+ - **Doctor enhancements**: now shows capability status summary and input-based recommendations.
2437
+ - **`.env.example` updated**: lists all 7 API keys (Tavily, Exa, Brave, Firecrawl, Serper, NewsAPI, MinerU) with section headers and provider URLs.
2438
+ - **Auto-generated feature docs**: `docs/features.md` and `docs/features.zh-CN.md` generated from capability catalog.
2439
+ - **CI gate**: `scripts/check_capabilities.py` ensures every user-facing provider has a CapabilitySpec registered.
2440
+
2441
+ ### Changed
2442
+
2443
+ - **Root `.env.example`** replaced legacy model-provider keys with current API key list matching wizard-generated output.
2444
+
2445
+ ## [0.3.2] — 2026-06-05
2446
+
2447
+ ### Added
2448
+
2449
+ - **`/propose-competitors` slash command** (`.claude/commands/propose-competitors.md`):
2450
+ invokes `market-competitor-planner` subagent to recommend competitor candidates
2451
+ based on `user.md` context. Writes `competitor_candidates.yaml` for user review.
2452
+ - **`prepare` CLI integration test**: verifies end-to-end output of `brief.md`,
2453
+ `claim_ledger.json`, and `audit_report.json` via real CLI invocation.
2454
+
2455
+ ### Fixed
2456
+
2457
+ - **Analysis module failures are no longer silently swallowed**: `_run_analysis_modules`
2458
+ now records failures as `AgentOutput` with `status: failed` and error details.
2459
+ Specialist auditor failures are logged with `logger.warning` and recorded in
2460
+ `analysis_packs` metadata — the system no longer silently falls back to default
2461
+ audit without indication.
2462
+ - **README**: `run` command wording changed from "已移除" to "已弃用,仅保留迁移提示"
2463
+ to match actual CLI behaviour.
2464
+ - **`docs/claude-code-workflow.md`**: CLI command list updated to include
2465
+ `prepare` and `competitors init/list/merge`.
2466
+
2467
+ ## [0.3.1] — 2026-06-05
2468
+
2469
+ ### Added
2470
+
2471
+ - **`multi-agent-brief prepare`** command: runs the full deterministic pipeline
2472
+ (source collection → Scout → Screener → Claim Ledger → draft artifacts).
2473
+ Replaces the disabled `run` command in `/generate-brief` workflow.
2474
+
2475
+ ### Fixed
2476
+
2477
+ - **`/generate-brief` main path restored**: Step 3 now calls `multi-agent-brief prepare`
2478
+ instead of the disabled `run` command. First-time users can now generate a brief
2479
+ without hitting a broken pipeline gate.
2480
+ - **`competitors propose` renamed to `competitors init`**: CLI only creates an empty
2481
+ template — LLM-assisted discovery uses the `/propose-competitors` slash command.
2482
+ Removed deceptive "LLM recommendation" claim from CLI help text.
2483
+ - **Version unified**: `pyproject.toml`, `__init__.py`, and `CHANGELOG` all read `0.3.1`.
2484
+ - **Pipeline order corrected** in market-competitor module docs (Analyst → Editor → Auditor → Formatter).
2485
+ - **`multi-agent-brief run`** now prints a migration message pointing to `prepare` instead
2486
+ of a generic error.
2487
+ - **AGENTS.md** references updated from `run` to `prepare`.
2488
+
2489
+ ## [0.3.0] — 2026-06-05
2490
+
2491
+ ### Added
2492
+
2493
+ - **Market & Competitor Intelligence Analysis Module** — 首个可插拔 AnalysisModule
2494
+ - `competitor_universe.yaml` 配置合同 + `competitor_candidates.yaml` 审核流程
2495
+ - CLI: `multi-agent-brief competitors propose | list | merge`
2496
+ - 竞对感知 Source Planning: 为每个 primary 竞对 × 维度自动生成定向搜索任务
2497
+ - `EntityEventEnricher`: 确定性实体/事件类型/地理/维度标注,接入 Scout 与 Screener 之间
2498
+ - `build_events`: 归并 entity-tagged Claim 为 MarketEvent,推测事件状态
2499
+ - 5 个中间产物: `events.json` / `competitor_matrix.json` / `coverage_report.json` / `watchlist.json` / `evidence_pack.json`
2500
+ - 跨期状态追踪: `event_history.jsonl` + change_status (new/changed/unchanged/cancelled/resolved)
2501
+ - 6 种专项审计: comparison_missing_entity_evidence / capacity_status_missing / metric_basis_missing / unsupported_market_trend / single_source_interpretation / competitor_coverage_gap
2502
+ - 3 个新 subagent: `market-competitor-planner` / `market-competitor-analyst` / `market-competitor-auditor`
2503
+ - 通用 `AnalysisModule` 接口 + Registry: 未来 earnings/policy/patent 模块可复用
2504
+ - 模块禁用时零影响 — 现有 589 tests 全过(73 新增)
2505
+ - Onboarding 扩展: `market_scope` 和 `competitor_preferences` 字段
2506
+
2507
+ ### Changed
2508
+
2509
+ - 移除 README update check CI job(`.githooks/pre-push` 同步清理)
2510
+
2511
+ ## [0.2.0] — 2026-06-05
2512
+
2513
+ ### Added
2514
+
2515
+ - **FilingResolverProvider**: New source provider that integrates [disclosure-filing-resolver](https://github.com/Stahl-G/disclosure-filing-resolver) for automatic SEC EDGAR filing acquisition. Fetches 10-K, 10-Q, 8-K, 6-K filings, extracts XBRL financial data (revenue, net income, assets, EPS), and converts them to Claim Ledger entries. 22 tests.
2516
+ - **filing-resolver source discovery integration**: `sources decide` now generates `filing_sources` candidates when company name is available. `sources decide --merge` enables `filing_resolver` provider and merges tickers into `sources.yaml`. 6 tests.
2517
+ - **filing_resolver workspace template**: All source profiles (llm_decide, research, conservative, etc.) now include a `filing_resolver` config section in `sources.yaml` — disabled by default, enabled via `sources decide --merge` or manual config.
2518
+ - **MineruProvider remote API mode**: Two new modes alongside local CLI. "Agent" mode uses MinerU's lightweight cloud API (no token needed, `https://mineru.net/api/v1/agent/parse`). "Premium" mode uses the full API with Bearer token (`https://mineru.net/api/v4/extract`). Both support URL and local file upload paths. All HTTP calls via `urllib.request` — zero extra dependencies.
2519
+ - **docs/mineru-integration.md**: New section covering remote API setup, agent vs. premium comparison table, configuration examples.
2520
+ - **Tests**: 6 new remote-mode tests (disabled, no files, validate, agent URL mock, premium URL mock).
2521
+
2522
+ ### Fixed
2523
+
2524
+ - **CI smoke tests**: Replaced broken inline `python -c` blocks in GitHub Actions workflow with standalone `scripts/ci/smoke_pipeline.py` script. Fixes YAML parsing errors introduced by MinerU PR.
2525
+
2526
+ ## [0.1.2] — 2026-06-04
2527
+
2528
+ ### Added
2529
+
2530
+ - **Feishu bidirectional integration via lark-cli**: New `FeishuProvider` (sources/feishu_provider.py) pulls data from Feishu Docs, Meeting Minutes, Base tables, Spreadsheets, Calendar, and Approval tasks. `FeishuDeliveryConnector` (delivery/feishu.py) sends briefs to Feishu chat, creates Feishu documents, and uploads files to Drive.
2531
+ - `.env.example` now lists all 5 search backends (Tavily, Exa, Brave, Firecrawl, Serper) with comments — generated on every workspace init, not just when Tavily is enabled.
2532
+ - **Free-text onboarding**: `audience`, `role`, `industry`, `cadence` all changed from numbered-choice (`ask_choice`) to free-text input (`ask_text`). Users can type "市场团队" or "solar" directly instead of being forced to pick from a numbered menu.
2533
+ - **New tests**: 13 new tests covering MCP JSON-RPC lifecycle, NewsAPI name filtering, CLI error_type, FeishuProvider validation/collection/delivery.
2534
+
2535
+ ### Changed
2536
+
2537
+ - **Agent onboarding hardening**: Removed "choose sensible defaults" from all agent instructions. All 6 `normalize_*` functions in `onboarding/mapper.py` no longer silently convert sentinel values to defaults. CLI validates company/industry/title after `--from-onboarding`.
2538
+ - **`multi-agent-brief run` removed**: The deterministic Python pipeline no longer runs via CLI. Users are redirected to `/generate-brief <workspace>` in Claude Code. Pipeline code (`BriefPipeline`, agents, audit) remains for internal testing.
2539
+ - **doctor error messages** now point to `.env.example` instead of vague "set environment variable".
2540
+
2541
+ ### Fixed
2542
+
2543
+ - **MCP Provider**: Fixed `text=True` + bytes write type error; added `_readline_timeout()` with `select.select()` for real timeout enforcement.
2544
+ - **NewsAPI validate_config**: Now filters providers by `name == "newsapi"` before checking API key — no longer false-positives when `sec` or other providers share the config section.
2545
+ - **CLI Provider**: Non-zero exit items now set `metadata.error_type = "CliExecutionError"`, caught by `registry._is_error_or_placeholder()`.
2546
+ - **Feishu validate_config**: Removed early return when lark-cli is missing (fixes CI). Removed `--format json` from `auth status` calls (flag not supported by lark-cli).
2547
+
2548
+ ## [0.1.1] — 2026-06-04
2549
+
2550
+ First public release. The following entries document the development iterations that led to this release.
2551
+
2552
+ ### Development iterations
2553
+
2554
+ #### Iteration 7 — Interactive onboarding enforcement
2555
+
2556
+ - Conversational onboarding: 10-question interactive wizard replaces hidden default profile creation.
2557
+ - `--from-onboarding onboarding.json` protocol for agent-driven workspace creation.
2558
+ - Non-interactive environments must use `--from-onboarding`; partial CLI args are rejected.
2559
+ - All CLI tests updated with `complete_init_args()` helper providing 7 required business fields.
2560
+ - Doc files updated for interactive-first workflow.
2561
+
2562
+ #### Iteration 6 — Profile-driven source discovery
2563
+
2564
+ - `user.md` as primary semantic context — generated with company, industry, role, focus areas, task objectives, and forbidden sources.
2565
+ - Simplified onboarding mapper: unknown industries return empty string instead of guessed slugs; raw user text preserved in `user.md`.
2566
+ - Default `llm_decide` source mode: agent-driven source discovery generates `source_candidates.yaml` for user review before ingestion.
2567
+ - Industry packs as optional seeds (no longer used as routing mechanism).
2568
+ - Tavily opt-in during interactive init; developer-only direct CLI init requires all required business fields.
2569
+ - Fixed `format_scalar(None)` outputting `"None"` instead of `null`.
2570
+
2571
+ #### Iteration 5.1 — Source provider pipeline fixes
2572
+
2573
+ - Fixed ScoutAgent unconditionally overwriting `context.sources`.
2574
+ - Fixed AnalystAgent only rendering 5 topics — expanded to all 10 Screener topics.
2575
+ - Fixed `merge_candidates_to_sources()` auto-enabling `web_search`.
2576
+ - Fixed `WebSearchProvider` using `hash()` for unstable `source_id` — switched to `hashlib.sha1`.
2577
+ - Fixed manual URL placeholders entering Claim Ledger.
2578
+ - Fixed `collect_all_sources()` silently swallowing provider exceptions.
2579
+ - Fixed `web_search.py` nested f-string `SyntaxError` on Python 3.9.
2580
+ - Fixed `init --industry` not writing industry into `source_strategy.industry`.
2581
+ - Implemented WebSearchProvider domain filtering.
2582
+ - Removed runtime `MockSearchBackend`: `web_search.enabled=true` without a real backend fails explicitly.
2583
+
2584
+ #### Iteration 5 — Three-layer source collection architecture
2585
+
2586
+ - Added `SourcePlanner`: generates search plans based on industry, role, and time window.
2587
+ - Added `industry_packs.py`: industry presets (manufacturing, banking, fund, internet, general) with search tasks.
2588
+ - `WebSearchProvider` with pluggable backend interface (tavily, serpapi, etc.).
2589
+ - Added `CachedPackageProvider`: reads pre-collected source package folders.
2590
+ - Added `search_backends/` module with `SearchBackend` ABC.
2591
+ - Unified `SourceItem` — eliminated duplicate definitions.
2592
+ - Pipeline restructured: Source Collection → Scout → Screener → ...
2593
+ - CLI gained `--industry` and `--days` args.
2594
+
2595
+ #### Iteration 4 — Source provider system
2596
+
2597
+ - Added `sources/` module with unified `SourceProvider` interface.
2598
+ - Three source profiles: `conservative`, `research`, `aggressive_signal`.
2599
+ - Manual provider: loads local `.md`/`.txt`/`.json` files and manual URL entries.
2600
+ - RSS provider: fetches and parses RSS/Atom feeds with keyword filtering.
2601
+ - Source normalization, deduplication, and recency filtering.
2602
+ - `multi-agent-brief doctor`: checks source configuration health.
2603
+ - Init wizard asks for source profile and generates tailored `sources.yaml`.
2604
+ - Stub providers for `web_search`, `api`, `mcp`, `cli`.
2605
+
2606
+ #### Iteration 3 — Agent config generation
2607
+
2608
+ - `configs/agent_roles.yaml` as single source of truth for all agent roles.
2609
+ - `scripts/generate_agent_configs.py` to generate platform-specific agent configs.
2610
+ - Generated Codex agents, skills, Claude Code subagents.
2611
+ - Generated documentation (`docs/agents/`).
2612
+ - `--check` mode for CI staleness detection.
2613
+
2614
+ #### Iteration 2 — Screener agent
2615
+
2616
+ - `ScreenerAgent` between `Scout` and `Analyst` in the pipeline.
2617
+ - Topic-based capacity caps across 10 topic buckets (max 160 claims total).
2618
+ - Novelty scoring with source tier, claim type, and high-signal term weights.
2619
+ - Previous report deduplication via text matching and theme-group detection.
2620
+ - Stale source and low-confidence (T5) source exclusion.
2621
+ - Pre-push hook and CI check: README must be updated before pushing code changes.
2622
+
2623
+ #### Iteration 1 — MVP pipeline
2624
+
2625
+ - Workspace initialization.
2626
+ - User profile and task objective recording.
2627
+ - Local file input.
2628
+ - Source discovery and source configuration.
2629
+ - Claim Ledger.
2630
+ - Audit and quality checks.
2631
+ - Markdown / JSON / DOCX output.
2632
+ - Claude Code / Codex agent configurations.
2633
+ - Open-source release safety scanning tools.