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