v0.2.3 — Brain M2 + M3: Temporal Depth and Source Breadth
What's Changed
- docs(roadmap): bank Brain M2 kickoff + held-minor versioning decision by @msywulak in #4919
- feat(brain): staleness decay surfacing — advisory-only, never auto-demote (#4914) by @msywulak in #4921
- feat(brain): surface in-tension-with conflict clusters, both-with-provenance (#4913) by @msywulak in #4920
- feat(brain): human-gated supersession at the publish gate (#4912) by @msywulak in #4922
- feat(brain): bi-temporal asOf reads in searchBrain (#4916) by @msywulak in #4923
- feat(brain): correct_fact — correction episodes with the four verbs (#4915) by @msywulak in #4924
- chore(brain): e2e temporal-loop proof — conflict → correct → supersede → asOf (#4917) by @msywulak in #4925
- chore(brain): harden wedge-loop-pg fixture helpers by @msywulak in #4927
- Brain M2: Temporal & Conflict Depth — milestone integration by @msywulak in #4928
- feat(www): publish Friday's launch-week post — the-process-is-the-region by @msywulak in #4929
- Revert "Brain M2: Temporal & Conflict Depth — milestone integration (#4928)" by @msywulak in #4930
- docs(brain): temporal model, correction verbs, conflict semantics (#4918) by @msywulak in #4931
- fix(brain): label a superseded tension counterpart instead of serving it as live by @msywulak in #4942
- fix(brain): KB ingest-bundle publish reports what it superseded (#4937) by @msywulak in #4944
- security(agent): stop runAgent defaulting to a write-carrying tool registry (#4936) by @msywulak in #4945
- test(brain): close the M2 temporal invariants that passed for the wrong reason (#4938) by @msywulak in #4946
- test(brain): fix an inverted negation in the corroboration comment by @msywulak in #4947
- ci: gate PRs onto the Brain M2 integration branch by @msywulak in #4948
- ci: drop the chore/ exception — the arc is on milestone/brain-m2 now by @msywulak in #4949
- fix(brain): label the retracted rival on the tool-schema and MCP descriptions (#4933) by @msywulak in #4951
- fix(brain): correct_fact's agent-tool path writes the admin-actions row (#4934) by @msywulak in #4952
- fix(brain): record the correction carve-out, unify /retract's disclosure, and stop the inert markers promising a reader (#4939) by @msywulak in #4953
- fix(api): #4941 — headless surfaces relay a degraded tool set, and pg errors keep their code by @msywulak in #4956
- refactor(tools,mcp): one searchBrain input schema, and decouple the shared description budget (#4954) by @msywulak in #4957
- chore(agent): make runAgent's
toolsrequired so the compiler enforces the surface gate (#4943) by @msywulak in #4959 - fix(api): fail boot when ATLAS_PYTHON_ENABLED has no ATLAS_SANDBOX_URL (#4940) by @msywulak in #4960
- Brain M2: Temporal & Conflict Depth — milestone integration (take 3, on milestone/brain-m2) by @msywulak in #4950
- refactor(brain): generalize the connector seam — class/vendor source vocabulary (#4963) by @msywulak in #4970
- feat(brain): Zoom transcript source — ADR-0036's second class, first connector on the generalized seam (#4965) by @msywulak in #4972
- fix(brain): quarantine the correction path of an unclassifiable episode source (#4964) by @msywulak in #4973
- docs(roadmap): #4964 shipped — correction-path quarantine by @msywulak in #4974
- feat(brain): Outlook mail source — ADR-0036's third class, and the first audience that cannot be enumerated (#4966) by @msywulak in #4976
- fix(brain): order the audience re-verify scan on ATTEMPT, not on success (#4971) by @msywulak in #4977
- feat(brain): webhook fast-path for chat — an alternate writer sharing the poll's source-id (#4967) by @msywulak in #4978
- docs(brain): M3 source classes, audience-derivation limits, connector authoring, webhook setup (#4969) by @msywulak in #4979
- chore(brain): e2e multi-source proof — cross-class corroboration, contradiction, and ACL isolation (#4968) by @msywulak in #4980
- chore(brain): dedicated test file for the tension cluster walk (#4962) by @msywulak in #4981
- docs(roadmap): #4962 shipped — M3 is 9/9 and ready for closeout by @msywulak in #4982
- fix(brain): M3 milestone-wide review panel — cross-cutting fixes by @msywulak in #4983
- Brain M3: Source Breadth — milestone integration (#93) by @msywulak in #4987
- fix(api): stop credential-bundle parse failures echoing decrypted plaintext (#4984) by @msywulak in #4988
- fix(web): count only OPEN conflicts in the brain-facts "in tension (N)" badge by @msywulak in #4989
- refactor(brain): model Outlook's block-vs-skip as a discriminated union by @msywulak in #4990
- refactor(brain): make a brain source and its audience re-verifier one registration unit by @msywulak in #4992
- fix(chat): restore the id-based mention backstop in multi-workspace Slack by @msywulak in #4991
- docs(roadmap): close out the #4911 residue on the v0.2.2 entry by @msywulak in #4993
- fix(brain): scope the Outlook stall detector to the mailbox it names by @msywulak in #4996
- feat(web/admin): muted "Conflict resolved" badge for an arbitrated brain fact by @msywulak in #4997
- fix(api): allow x-captcha-response in CORS preflight so signup can submit by @msywulak in #4998
Full Changelog: v0.2.2...v0.2.3