diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 7b0cc97..5f3243d 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.75.0" + ".": "0.76.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index a816b74..32e8c6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,191 @@ # Changelog +## [0.76.0](https://github.com/Santisoutoo/LexFlow/compare/v0.75.0...v0.76.0) (2026-09-17) + + +### Features + +* add autonomous agent loop (OpenCode worker + reviewer) ([b57fbaf](https://github.com/Santisoutoo/LexFlow/commit/b57fbaf12c48ac8d11b6a9a68e43162892179129)) +* add Cursor CLI as a second implementation engine ([1fdd84c](https://github.com/Santisoutoo/LexFlow/commit/1fdd84ce7911faa6dd0961f2497d7518b7836cc9)) +* add Cursor CLI as a second implementation engine ([385dc62](https://github.com/Santisoutoo/LexFlow/commit/385dc62d96da8948272cfced33cc52f26f105a7a)) +* **agent-loop:** add autonomous review for external PRs ([0209bbc](https://github.com/Santisoutoo/LexFlow/commit/0209bbc9d15db7e65abbeb1693eb8c3f839bb6a0)) +* **agent-loop:** add autonomous review for external PRs ([d9993e1](https://github.com/Santisoutoo/LexFlow/commit/d9993e1fc3836a06f606e71b3f02287dc515062a)) +* **agent-loop:** add retry gate for faster recovery after transient failures ([1a2074d](https://github.com/Santisoutoo/LexFlow/commit/1a2074d5bd6549f34ad3721a010f9de798d42698)) +* **agent-loop:** add retry gate for faster recovery after transient failures ([5e2208f](https://github.com/Santisoutoo/LexFlow/commit/5e2208f0b306e981aaaf85363b7648a7254617dd)) +* **agent-loop:** add scheduled orca-supervisor workflow ([5f459e7](https://github.com/Santisoutoo/LexFlow/commit/5f459e766e792e6505267ddb8233a7b409a672c5)) +* **agent-loop:** add scheduled orca-supervisor workflow ([8d113ef](https://github.com/Santisoutoo/LexFlow/commit/8d113ef1151bee93d5109db8eb1c228d41d4b96b)) +* **agent-loop:** migrate to Cursor-only engine with agent-driven picker and planner ([4a18b7b](https://github.com/Santisoutoo/LexFlow/commit/4a18b7b16f18599ed633510cc68f0b0d8ff8b6e5)) +* **agent-loop:** migrate to Cursor-only engine with agent-driven picker and planner ([c0aae72](https://github.com/Santisoutoo/LexFlow/commit/c0aae72abac9796131e08de7d772f313ddd04e99)) +* **ai:** persist editor drafts with range insert and markdown ([779b3e0](https://github.com/Santisoutoo/LexFlow/commit/779b3e0bcf8b4d66b8527b4cae58c820fcd60e55)) +* autonomous agent loop (OpenCode worker + reviewer + Orca supervision) ([685f520](https://github.com/Santisoutoo/LexFlow/commit/685f520b92f17e8518185e462eec0eba8052339c)) +* **chat:** Sprint 2 transparency — tool indicator, enriched citations, error surfacing ([d3dc0c7](https://github.com/Santisoutoo/LexFlow/commit/d3dc0c7bc2b869bd3419026f2a1fcc35b6baee6e)) +* **chat:** Sprint 3 conversation quality — stop, markdown, context bounds ([1ed4ebf](https://github.com/Santisoutoo/LexFlow/commit/1ed4ebfd905b7e42c67c5eecce0d98fc1e7e1edc)) +* **ci:** surface picker/planner output to Actions log, add caveman narration ([701ef2a](https://github.com/Santisoutoo/LexFlow/commit/701ef2ad97e07f01ca780e6b6ee38365400c2336)) +* **ci:** surface picker/planner output to logs, add caveman narration style ([6b94963](https://github.com/Santisoutoo/LexFlow/commit/6b94963fdeb75f0fdcd8e6be5c1c9cb5721485fe)) +* **core,api:** serve non-article prose + corpus-drift report ([#55](https://github.com/Santisoutoo/LexFlow/issues/55)) ([e92f740](https://github.com/Santisoutoo/LexFlow/commit/e92f7402c898753357243dba728a12b160d886d9)) +* **core:** add Disposicion model and extraction of closing dispositions ([c5853dd](https://github.com/Santisoutoo/LexFlow/commit/c5853dd3e10b32085bee5dde314f02024a4223fd)) +* **explorer:** trustworthy search UX — pagination, metadata, honest facets ([9acf58b](https://github.com/Santisoutoo/LexFlow/commit/9acf58b30ec72110cb42e7c211664a108cd3aca4)) +* **frontend:** add AI disclaimers and grounding honesty (S1.1–S1.5) ([6c6d556](https://github.com/Santisoutoo/LexFlow/commit/6c6d556f03d3487f31eceb7875ba670fd51dddaa)) +* **frontend:** add in-app desktop update notice with mock updater ([02ce5d7](https://github.com/Santisoutoo/LexFlow/commit/02ce5d73d91a8c27af7e3dee4496a50943653f0f)) +* **frontend:** add legal status provenance and BOE trust UX ([026fe84](https://github.com/Santisoutoo/LexFlow/commit/026fe842f708027f74e55d2adf4abe57785d62a6)) +* **frontend:** article-anchor hrefs, hash-scroll SPA test, explorer URL state ([90c139c](https://github.com/Santisoutoo/LexFlow/commit/90c139cf23534ca4924a5be1f936716a05c369d7)) +* **frontend:** make Sprint 3 wayfinding match the real app ([943e62b](https://github.com/Santisoutoo/LexFlow/commit/943e62b24ecefd208262c1ebe8ff38e9efd16e1f)) +* **frontend:** Sprint 3 comment UX — click highlights, badge, guards ([a662312](https://github.com/Santisoutoo/LexFlow/commit/a662312634526d44ab8f08d44b6abbdf5f5a0b52)) +* **frontend:** Sprint 3 surface craft for dashboards, i18n, and a11y ([6a8d121](https://github.com/Santisoutoo/LexFlow/commit/6a8d1212117427f020f6f761c5ff808591c15f9b)) +* **frontend:** unify search UX across palette, explorer, and routes ([3c2c882](https://github.com/Santisoutoo/LexFlow/commit/3c2c8825a206373a79cb43aba20676450f0c8745)) +* **frontend:** wire Sprint 1 reachability entry points ([deae42a](https://github.com/Santisoutoo/LexFlow/commit/deae42afe9d17fc52d43c47f341652edf68ba6be)) +* **graph:** community colours, hover highlight, wire dead controls ([123eb6a](https://github.com/Santisoutoo/LexFlow/commit/123eb6ac36c514e8f481ed864493396178b6dd85)) +* **graph:** persist edge resolution and mark inferred relations ([8f6216a](https://github.com/Santisoutoo/LexFlow/commit/8f6216a0a60c2e8a9e0d31de7f1a111a9e276061)) +* **graph:** precompute analytics and add global view plus path UI ([746212d](https://github.com/Santisoutoo/LexFlow/commit/746212df516a949670a022d54697b8480916f497)) +* guide Ollama install and validate cloud keys in the wizard ([fab67c9](https://github.com/Santisoutoo/LexFlow/commit/fab67c920c943c3c460d6770a35eb11fbf749dcd)) +* implement editor sprint 4 templates, citations and surface UX ([3b3ceba](https://github.com/Santisoutoo/LexFlow/commit/3b3ceba0b7df0725077e4c31c0a3fa05db378fa5)) +* **law-detail:** TOC, deep links, empty state, and virtualization ([706e207](https://github.com/Santisoutoo/LexFlow/commit/706e2072510897420d782c7d4af49de2fa81071d)) +* **onboarding:** unify wizard flow and honest no-model chat state ([5387f6c](https://github.com/Santisoutoo/LexFlow/commit/5387f6c5e8f3c5aa7b141734f90baa7113829e9a)) +* **reading:** citations, version diffs, and law metadata ([36af0ca](https://github.com/Santisoutoo/LexFlow/commit/36af0ca40db32a05a7dc942ba5af5accfdf94bae)) +* **reading:** structured article blocks, disposiciones API, typography pass ([7c0e7aa](https://github.com/Santisoutoo/LexFlow/commit/7c0e7aa271d291f33eea7a0b9f0f0746c8fee7e7)) +* resolve [#106](https://github.com/Santisoutoo/LexFlow/issues/106) — [data-fidelity] S2.1 — feat(core): Disposicion model + extraction of adicional/transitoria/derogatoria/final headings ([4975eb7](https://github.com/Santisoutoo/LexFlow/commit/4975eb76b164509f183faafb1b3c5d7d1295a8fd)) +* resolve [#14](https://github.com/Santisoutoo/LexFlow/issues/14) — [desktop] Diálogo in-app de "nueva versión disponible" + actualización en un clic ([3017b36](https://github.com/Santisoutoo/LexFlow/commit/3017b3664d66254d8d7766a340430238dbd40561)) +* resolve [#15](https://github.com/Santisoutoo/LexFlow/issues/15) — chore(app): design-token & anti-pattern cleanup (baseline-ui) ([50941f8](https://github.com/Santisoutoo/LexFlow/commit/50941f8935daa4f1db34386e1b7d60126bec5efe)) +* resolve [#20](https://github.com/Santisoutoo/LexFlow/issues/20) — [graph] Sprint 2 — kind accuracy & coverage: strongest-kind merge + context-aware classification + preambles/disposiciones ([17ea5d2](https://github.com/Santisoutoo/LexFlow/commit/17ea5d21687339c1ea7a2500d5f63f0ed26980c0)) +* resolve [#23](https://github.com/Santisoutoo/LexFlow/issues/23) — [graph-viz] Sprint A — correctness + quick wins: typed edges, honest rail, deep-link seed, theme, drop xyflow ([2f72e2d](https://github.com/Santisoutoo/LexFlow/commit/2f72e2d5d4221c96ee6d903b076ecf61b0b4cca4)) +* resolve [#24](https://github.com/Santisoutoo/LexFlow/issues/24) — [graph-viz] Sprint B — design: community colouring, hover+arrows, wire the dead controls ([d32a210](https://github.com/Santisoutoo/LexFlow/commit/d32a2101db71f93f96815e95dc533f7ea3843f7d)) +* resolve [#25](https://github.com/Santisoutoo/LexFlow/issues/25) — [graph-viz] Sprint C — scale: precompute PageRank/communities, global view + LOD, path UI, tests ([aee6f01](https://github.com/Santisoutoo/LexFlow/commit/aee6f0154029bf63501c601c7f8b61d70266e832)) +* resolve [#27](https://github.com/Santisoutoo/LexFlow/issues/27) — [onboarding] Sprint 1 — make the wizard actually configure a working model ([05e04bc](https://github.com/Santisoutoo/LexFlow/commit/05e04bc66a354ecebc40675611dbc3b7ebdc8762)) +* resolve [#28](https://github.com/Santisoutoo/LexFlow/issues/28) — [onboarding] Sprint 2 — guided local + cloud setup (install Ollama, inline key + validation) ([4493de6](https://github.com/Santisoutoo/LexFlow/commit/4493de6430c54ab5bb8194fe5f67afd615230e7f)) +* resolve [#29](https://github.com/Santisoutoo/LexFlow/issues/29) — [onboarding] Sprint 3 — one wizard, honest no-model state, polish ([708ce01](https://github.com/Santisoutoo/LexFlow/commit/708ce012f014556d35d917a81dad18bf11cc7f2d)) +* resolve [#31](https://github.com/Santisoutoo/LexFlow/issues/31) — [reading] Sprint 1 — make the text render as a document (parser blocks + clause render + titles + measure) ([3f71dcc](https://github.com/Santisoutoo/LexFlow/commit/3f71dcc3d0482e9ad5508e95958cb4afdbfcdc62)) +* resolve [#32](https://github.com/Santisoutoo/LexFlow/issues/32) — [reading] Sprint 2 — navigation + honest states (TOC, deep links, empty state, virtualization) ([f032741](https://github.com/Santisoutoo/LexFlow/commit/f03274132b7ee68ed1d0a2ffd3a9a2bcc00bd4c0)) +* resolve [#33](https://github.com/Santisoutoo/LexFlow/issues/33) — [reading] Sprint 3 — citations, versions/diffs, metadata ([685d1b0](https://github.com/Santisoutoo/LexFlow/commit/685d1b04da03e7f3adbf0708e8dcbfed70055cb9)) +* resolve [#36](https://github.com/Santisoutoo/LexFlow/issues/36) — [design] Sprint 3 — surface craft & distinctiveness (dashboards, i18n, a11y CVD) ([4de3d8c](https://github.com/Santisoutoo/LexFlow/commit/4de3d8c66d040ff2cda2964286b6a1679fc4c79c)) +* resolve [#38](https://github.com/Santisoutoo/LexFlow/issues/38) — [chat] Sprint 1 — the trust core: persist sources+tool turns, fix cloud RAG, system prompt, AI disclaimer ([77a4876](https://github.com/Santisoutoo/LexFlow/commit/77a487655083455418dbea1e6774a151f39a1b83)) +* resolve [#39](https://github.com/Santisoutoo/LexFlow/issues/39) — [chat] Sprint 2 — transparency & verification: tool indicator, cite-what-was-read, error surfacing, aria-live ([17262d9](https://github.com/Santisoutoo/LexFlow/commit/17262d9148eca50029de9dc873746edc6f40ea1c)) +* resolve [#40](https://github.com/Santisoutoo/LexFlow/issues/40) — [chat] Sprint 3 — conversation quality: stop button + thread-scoped state, markdown, auto-title, bounded context ([73ea4df](https://github.com/Santisoutoo/LexFlow/commit/73ea4dfd654e8bc90c07c3ac1692e6317f53b2ab)) +* resolve [#42](https://github.com/Santisoutoo/LexFlow/issues/42) — Sprint 1 — Never wedge (startup fault-tolerance) ([88efe82](https://github.com/Santisoutoo/LexFlow/commit/88efe82b95429ebc7f48379fff4a4141531ae1d6)) +* resolve [#43](https://github.com/Santisoutoo/LexFlow/issues/43) — Sprint 2 — Every failure explains itself (error pipeline) ([0fbc279](https://github.com/Santisoutoo/LexFlow/commit/0fbc27926a6b97828542de4c463e42aaaa4c30cb)) +* resolve [#44](https://github.com/Santisoutoo/LexFlow/issues/44) — Sprint 3 — No silent data loss ([ceebd0f](https://github.com/Santisoutoo/LexFlow/commit/ceebd0fcd8c0ac4e225f80a99fbc96f71d18fc20)) +* resolve [#45](https://github.com/Santisoutoo/LexFlow/issues/45) — Sprint 4 — Frontend resilience + hardening ([f76a219](https://github.com/Santisoutoo/LexFlow/commit/f76a2190f37a893f958679ab3006be4325b6982d)) +* resolve [#47](https://github.com/Santisoutoo/LexFlow/issues/47) — [search-ux] Sprint 1 — matcher: tokenize + accent-fold + honest hints ([7d65726](https://github.com/Santisoutoo/LexFlow/commit/7d657266cc67a2bb7d1fef86510b5a41887e0d97)) +* resolve [#48](https://github.com/Santisoutoo/LexFlow/issues/48) — [search-ux] Sprint 2 — navigation: article anchors + hash scroll + URL state ([9f017d2](https://github.com/Santisoutoo/LexFlow/commit/9f017d2807e5156555f8d639348885bd3844d962)) +* resolve [#49](https://github.com/Santisoutoo/LexFlow/issues/49) — [search-ux] Sprint 3 — trustworthy results: pagination, metadata, honest facets ([3b89e46](https://github.com/Santisoutoo/LexFlow/commit/3b89e463552408ead4d0d93bc5192d78913f5b61)) +* resolve [#50](https://github.com/Santisoutoo/LexFlow/issues/50) — [search-ux] Sprint 4 — one polished search: unify surfaces + feel ([1d4ab93](https://github.com/Santisoutoo/LexFlow/commit/1d4ab93b9f499ba37c8a41679a180a3f3ab9f6c4)) +* resolve [#57](https://github.com/Santisoutoo/LexFlow/issues/57) — [ia-nav] Sprint 1 — reachability: /search entry points, mobile Settings/Editor/Communities, palette overflow, editor docs ([35567de](https://github.com/Santisoutoo/LexFlow/commit/35567de270581882489f7408e0ab3ef8cf3fdb60)) +* resolve [#58](https://github.com/Santisoutoo/LexFlow/issues/58) — [ia-nav] Sprint 2 — honest controls: dead exports, false shortcut hints, stub tab, per-version diff ([56728f5](https://github.com/Santisoutoo/LexFlow/commit/56728f5899264794de3c60d01d449dc7a28b255e)) +* resolve [#59](https://github.com/Santisoutoo/LexFlow/issues/59) — [ia-nav] Sprint 3 — wayfinding & truthfulness: breadcrumb, help/tour, Reciente, chat copy, avatar ([5e1985e](https://github.com/Santisoutoo/LexFlow/commit/5e1985e3bd6d38941e8d9672d5eac49d5ccd586e)) +* resolve [#60](https://github.com/Santisoutoo/LexFlow/issues/60) — [ia-nav] Sprint 4 — placement, labels & i18n: MCP rename, dynamic diff, density, communities, translations ([550e6dc](https://github.com/Santisoutoo/LexFlow/commit/550e6dc05fe7cbce25b5ad91e63ced765e6a5bf5)) +* resolve [#62](https://github.com/Santisoutoo/LexFlow/issues/62) — [trust] Sprint 1 — AI disclaimers & grounding honesty (chat, editor drafts, onboarding) ([7af995d](https://github.com/Santisoutoo/LexFlow/commit/7af995df1cd9dc429b7fc10135163f952cfecda5)) +* resolve [#63](https://github.com/Santisoutoo/LexFlow/issues/63) — [trust] Sprint 2 — legal status & data provenance (BOE link, status tooltip, disclaimer) ([0e77464](https://github.com/Santisoutoo/LexFlow/commit/0e774645f3002ad9d1fe343133cd908c42083812)) +* resolve [#64](https://github.com/Santisoutoo/LexFlow/issues/64) — [trust] Sprint 3 — inference signals in the graph (inferido edges, real node meta) ([e5cf6ec](https://github.com/Santisoutoo/LexFlow/commit/e5cf6ecae37c52ad8afd368fb0a411ce786718b3)) +* resolve [#65](https://github.com/Santisoutoo/LexFlow/issues/65) — [trust] Sprint 4 — calibrated confidence in search & dashboards ([42033e1](https://github.com/Santisoutoo/LexFlow/commit/42033e140678745fd12717aeade32a5df3ef8d22)) +* resolve [#67](https://github.com/Santisoutoo/LexFlow/issues/67) — [micro-copy] Sprint 1 — monolingual surfaces: hispanicize editor + wizard, route i18n-bypassing components ([1775a0f](https://github.com/Santisoutoo/LexFlow/commit/1775a0f6f0dca752515e95ef80c7a9c16d9395f4)) +* resolve [#68](https://github.com/Santisoutoo/LexFlow/issues/68) — [micro-copy] Sprint 2 — legal truth & honest data: correct rank labels, status wording, honest copy ([20e5bce](https://github.com/Santisoutoo/LexFlow/commit/20e5bce6b74d8e815364273c1a414d68ea3e5789)) +* resolve [#69](https://github.com/Santisoutoo/LexFlow/issues/69) — [micro-copy] Sprint 3 — glossary & style: official terminology, gender-neutral welcome, grammar, casing ([e8014e9](https://github.com/Santisoutoo/LexFlow/commit/e8014e9359272967904a72e8c301b3cfd3715568)) +* resolve [#70](https://github.com/Santisoutoo/LexFlow/issues/70) — [micro-copy] Sprint 4 — plurals, numbers & system messages ([0a9844b](https://github.com/Santisoutoo/LexFlow/commit/0a9844b5170240f51aa5252b04e8324f85298d4c)) +* resolve [#72](https://github.com/Santisoutoo/LexFlow/issues/72) — [editor] Sprint 1 — persistence & lifecycle: flush autosave, history-safe switch, save indicator ([4411ebf](https://github.com/Santisoutoo/LexFlow/commit/4411ebfc90d1c37305a853e07a8880defab2a1ab)) +* resolve [#73](https://github.com/Santisoutoo/LexFlow/issues/73) — [editor] Sprint 2 — AI assistant: range-anchored insertion, draft lifecycle, thread hygiene ([83f52f1](https://github.com/Santisoutoo/LexFlow/commit/83f52f19473adbdb6b223258d46b395aafd359b0)) +* resolve [#74](https://github.com/Santisoutoo/LexFlow/issues/74) — [editor] Sprint 3 — comments that can be found: clickable highlights, badge, overlap/orphan guards ([3d21cb9](https://github.com/Santisoutoo/LexFlow/commit/3d21cb94eeb1aa8eb82be6940aa872ddcaa280fe)) +* resolve [#75](https://github.com/Santisoutoo/LexFlow/issues/75) — [editor] Sprint 4 — templates, citations & surface comfort ([49c9239](https://github.com/Santisoutoo/LexFlow/commit/49c9239b0ba249b14590a824eee21614c727ee79)) +* resolve [#77](https://github.com/Santisoutoo/LexFlow/issues/77) — [backend-perf] Sprint 1 — event-loop & concurrency hygiene (chat off the event loop) ([ff08651](https://github.com/Santisoutoo/LexFlow/commit/ff0865117ad941ce69524b55babb4b9fd533df9e)) +* resolve [#78](https://github.com/Santisoutoo/LexFlow/issues/78) — [backend-perf] Sprint 2 — cold start <= ~15s (parse-and-release, CSafeLoader, single-pass) ([7370db5](https://github.com/Santisoutoo/LexFlow/commit/7370db5d48f06346a2ca92f8cfdd0ca0cf96fea7)) +* **search:** tokenize, accent-fold, alias expansion, and search UX fixes ([#47](https://github.com/Santisoutoo/LexFlow/issues/47)) ([9207e3f](https://github.com/Santisoutoo/LexFlow/commit/9207e3f5c7bfa560b53b54f3f767b1d52babb892)) + + +### Bug Fixes + +* accept OPENCODE_AUTH_JSON secret as base64 or raw JSON ([be61815](https://github.com/Santisoutoo/LexFlow/commit/be6181516259bede8d2e7b35946d25ef210fbbd7)) +* add Real Decreto-ley to explorer URL rango allowlist ([448a0ab](https://github.com/Santisoutoo/LexFlow/commit/448a0abe74fb22a13f7dd68d40ad030916314041)) +* **agent-loop:** add intra-run quota fallback to Composer/Grok ([50d98a1](https://github.com/Santisoutoo/LexFlow/commit/50d98a1a141a8c811b604fcefa20ae3ed895e6d2)) +* **agent-loop:** auto-escalate model tier and cross-run engine failover ([9bace82](https://github.com/Santisoutoo/LexFlow/commit/9bace82d81c013fa7cd9c18cda96155ab82190ee)) +* **agent-loop:** auto-escalate model tier and cross-run engine failover ([3d16ac1](https://github.com/Santisoutoo/LexFlow/commit/3d16ac1b6702a12a168d721fe603ef59039efcfa)) +* **agent-loop:** eligibility guard step failing under bash -e for normal-sized PRs ([7f0724c](https://github.com/Santisoutoo/LexFlow/commit/7f0724caa0c0c22121423f4f0347afaa11f58554)) +* **agent-loop:** idle-timeout was killing real work, drop unsupported --sandbox ([a2d5ab2](https://github.com/Santisoutoo/LexFlow/commit/a2d5ab2c6f70f8be53b6cec59a91d6e5dad1bf81)) +* **agent-loop:** idle-timeout was killing real work, drop unsupported --sandbox ([a798f64](https://github.com/Santisoutoo/LexFlow/commit/a798f640b3d6e2ff2d92cd88610ac03c0b1d887c)) +* **agent-loop:** intra-run quota fallback to Composer/Grok ([4edcedd](https://github.com/Santisoutoo/LexFlow/commit/4edcedd9394f273907df0a8ed9e9861c9660251c)) +* allow resolve/reopen to update same comment mark ([df8e703](https://github.com/Santisoutoo/LexFlow/commit/df8e703e54b9f41451baec510031c97f62d78684)) +* **api:** sort law list by publication date for Home feed ([27565b4](https://github.com/Santisoutoo/LexFlow/commit/27565b4233411947a6d1e9b7c31a59a11badb669)) +* bound engine calls with a per-call timeout in run-engine.sh ([cc64389](https://github.com/Santisoutoo/LexFlow/commit/cc643890436b470734ed852bf12297fd48db1506)) +* bound engine calls with a per-call timeout in run-engine.sh ([1410e0c](https://github.com/Santisoutoo/LexFlow/commit/1410e0c0cb12cd9a4404ccf96e580f9739f469e9)) +* bump pinned opencode to 1.18.21 ([b6fbde7](https://github.com/Santisoutoo/LexFlow/commit/b6fbde74255ac74f0eead7cc67eb0d32cb9fb37a)) +* bump pinned opencode to 1.18.21 ([b51c0dd](https://github.com/Santisoutoo/LexFlow/commit/b51c0ddf0d1af3d1212e90b5ff67947aec69f1d2)) +* **chat:** off-load tool dispatch off event loop, document single-user invariant ([7612bc7](https://github.com/Santisoutoo/LexFlow/commit/7612bc763b67f69be480ba9789f9515b04e3c132)) +* **chat:** persist sources and tool turns, fix cloud RAG history ([1fb7048](https://github.com/Santisoutoo/LexFlow/commit/1fb7048d574aa4f6e11135f2e63b3ab6c7032aec)) +* **chat:** use anyio.to_thread.run_sync for event-loop offload ([#77](https://github.com/Santisoutoo/LexFlow/issues/77)) ([f4bdeac](https://github.com/Santisoutoo/LexFlow/commit/f4bdeac5a3f24c832c6bd8ef63f31d4c23c1c707)) +* **ci:** keep picker's tee copy on stderr, not stdout ([6f3b94c](https://github.com/Santisoutoo/LexFlow/commit/6f3b94cfe22690cf419a271a163afa2241f81b55)) +* **ci:** keep picker's tee copy on stderr, not stdout ([314c3ae](https://github.com/Santisoutoo/LexFlow/commit/314c3aef292f9a0c474a2d8b9bb5a5fc9f68f8f4)) +* **ci:** set GH_REPO in orca-supervisor to fix gh CLI repo detection ([bed3c0b](https://github.com/Santisoutoo/LexFlow/commit/bed3c0b27b22dc77ba14d5773fdb51d1f21f9f25)) +* **ci:** set GH_REPO in orca-supervisor to fix gh CLI repo detection ([f2bb02f](https://github.com/Santisoutoo/LexFlow/commit/f2bb02f22c950c9028074fb88d5546bf11cea650)) +* **ci:** stop agent-loop commits linking to an unrelated real GitHub account ([96637c6](https://github.com/Santisoutoo/LexFlow/commit/96637c68d2482f465d3544876dc5a1b784b52a95)) +* **ci:** stop agent-loop commits linking to an unrelated real GitHub account ([5c2e2d4](https://github.com/Santisoutoo/LexFlow/commit/5c2e2d4c44f3c66d03d8747f6e3b84208a39e513)) +* **copy:** apply official ES UI glossary and gender-neutral welcome ([21b33f3](https://github.com/Santisoutoo/LexFlow/commit/21b33f34789f37508956d3ae2929a5090633018c)) +* **core:** article completeness — phantoms, ranges, zero-article, duplicates ([3aec0e9](https://github.com/Santisoutoo/LexFlow/commit/3aec0e966e4bd5993927aaa1a1869a7e27126c32)) +* **core:** attribute references inside disposiciones to the disposición ([44c36c8](https://github.com/Santisoutoo/LexFlow/commit/44c36c8d4176c1845df1b2eb73fee901b52356a6)) +* **core:** keep repeal lead-in context for list-form derogations ([d388943](https://github.com/Santisoutoo/LexFlow/commit/d38894350d598c71bda589ab4300d974959b2eb0)) +* **core:** read full frontmatter block in parse_metadata_only ([02777e6](https://github.com/Santisoutoo/LexFlow/commit/02777e6fb4a5ef94f539058d9fb2abf64c7a9b55)) +* **core:** split Article.number and Article.title in _ARTICLE_RE ([187b8dc](https://github.com/Santisoutoo/LexFlow/commit/187b8dc210d1e64bc09d72afed1047fce5b5f1dc)), closes [#112](https://github.com/Santisoutoo/LexFlow/issues/112) +* **core:** stop article text at level-5/6 non-article headings ([95f1717](https://github.com/Santisoutoo/LexFlow/commit/95f1717faf9a7bc7179a4936d46445271aa760c0)), closes [#107](https://github.com/Santisoutoo/LexFlow/issues/107) +* correct drift zero-article undercount and stale search cache ([2596573](https://github.com/Santisoutoo/LexFlow/commit/259657394ca94bfb1b65ed08d5590a477d5ce86f)) +* default the cursor engine to composer-2.5 ([eb54baa](https://github.com/Santisoutoo/LexFlow/commit/eb54baa125ef63790b88fc1114557c5b78724215)) +* default the cursor engine to composer-2.5 ([f0f401e](https://github.com/Santisoutoo/LexFlow/commit/f0f401ea50a5c14512774de8e17f7306a95947c5)) +* **editor:** flush pending autosave and keep doc switches history-safe ([e22829f](https://github.com/Santisoutoo/LexFlow/commit/e22829f233162966d19da462aab8a93c7bb26efc)) +* error-detail pipeline and Spanish chat failures (issue [#43](https://github.com/Santisoutoo/LexFlow/issues/43)) ([78eb24e](https://github.com/Santisoutoo/LexFlow/commit/78eb24e79350aa6075f64cb3988b62b6bdcd8379)) +* **frontend:** branch updater retry on error phase and guard poll ([c8cc56f](https://github.com/Santisoutoo/LexFlow/commit/c8cc56f27546ae086413e9908a9c1a2cfb2939c3)) +* **frontend:** calibrated confidence in search, dashboards, and chat ([85ca655](https://github.com/Santisoutoo/LexFlow/commit/85ca6550a3d0ed054e2cb56665044adb70941d31)) +* **frontend:** correct legal status labels and honest micro-copy ([9e863ff](https://github.com/Santisoutoo/LexFlow/commit/9e863ffe6b75df2444b5c8b524170301408b6fd0)) +* **frontend:** flush autosave to outgoing doc on route switch ([b4caff0](https://github.com/Santisoutoo/LexFlow/commit/b4caff06a7e8ce7c03d9413ec10abca96ed95a18)) +* **frontend:** make remaining Sprint 2 controls honest ([5b8ffde](https://github.com/Santisoutoo/LexFlow/commit/5b8ffde22bfada934ab9cdb6f4cda8d3cc5810b3)) +* **frontend:** polish Sprint 4 placement, labels, and i18n ([e170f19](https://github.com/Santisoutoo/LexFlow/commit/e170f1940a2eacd151b205456b0ce10b4ac6eddb)) +* **frontend:** Sprint 4 micro-copy — plurals, system messages, errors ([822c53b](https://github.com/Santisoutoo/LexFlow/commit/822c53b4495f0bca882b0de53c98c7eab9ccfd08)) +* **frontend:** stop duplicating disposicion title in heading ([4bfaf6e](https://github.com/Santisoutoo/LexFlow/commit/4bfaf6e38ce8495da8e2981338d4575c2ce9d1be)) +* **frontend:** surface stream errors in AiDraftPanel and clear toolActivity ([99e36c3](https://github.com/Santisoutoo/LexFlow/commit/99e36c378628126c756cbfc0b5e80f6cf554ed94)) +* **frontend:** wire wizard model setup to chat and settings ([1447504](https://github.com/Santisoutoo/LexFlow/commit/1447504d0b979f0071c22bbf5cbc38089c56dbf4)) +* **graph:** Sprint A correctness — typed edges, honest rail, deep-link, theme ([1a39333](https://github.com/Santisoutoo/LexFlow/commit/1a39333997012ae94184dcd46fa7549144f7cd15)) +* **graph:** strongest-kind merge and context-aware reference classification ([4a75733](https://github.com/Santisoutoo/LexFlow/commit/4a75733dea25cc45840fa34da1b87e9d90f801b1)) +* **i18n:** complete sprint-1 micro-copy sweep for editor and wizard ([bbe330d](https://github.com/Santisoutoo/LexFlow/commit/bbe330d696ee3f6e025f9120ed9c35c97c6298da)) +* **i18n:** refresh home greeting when locale changes ([7328c27](https://github.com/Santisoutoo/LexFlow/commit/7328c271813d69f03232949d075eaf09681a3df0)) +* idle-timeout for agent-loop engine calls, infra-failure escalation ([bc4052d](https://github.com/Santisoutoo/LexFlow/commit/bc4052d2e9c21b5449a419e49130fba7fa801355)) +* materialize range placeholders in section span articles ([5267ae3](https://github.com/Santisoutoo/LexFlow/commit/5267ae330f82d559412d30a9aa8a02aee52e62ea)) +* pass --head explicitly to gh pr create and clean orphan branches ([4c6f1ec](https://github.com/Santisoutoo/LexFlow/commit/4c6f1eca136f556cfe801587be5c92b4c2fb4997)) +* pass --head explicitly to gh pr create and clean orphan branches ([a8d3ba3](https://github.com/Santisoutoo/LexFlow/commit/a8d3ba365ba527b75dffbc035759754e5e74b557)) +* persist wizard completion from overlay and align profile probe timeout ([dc8a8eb](https://github.com/Santisoutoo/LexFlow/commit/dc8a8ebf1596a64c0c9f337546dbbf29f44675cd)) +* preserve template fill draft when escaping back to list ([93c6a97](https://github.com/Santisoutoo/LexFlow/commit/93c6a977a8af223166e7e1c12a2a77db53dea46c)) +* replace agent-loop's flat call timeout with an idle-timeout, add infra-failure escalation ([d888bd5](https://github.com/Santisoutoo/LexFlow/commit/d888bd568b4872c88869d292e1cc3faa3572449a)) +* resolve [#107](https://github.com/Santisoutoo/LexFlow/issues/107) — [data-fidelity] S2.2 — fix(core): stop article text at level-5/6 non-article headings ([9eb13af](https://github.com/Santisoutoo/LexFlow/commit/9eb13af93676cffd97cccbc31d14e2390e726b73)) +* resolve [#108](https://github.com/Santisoutoo/LexFlow/issues/108) — [data-fidelity] S2.3 — fix(core): attribute references inside disposiciones to the disposición, not the last article ([ad7a5a5](https://github.com/Santisoutoo/LexFlow/commit/ad7a5a557d12ca4d79de0cb8934972118e56b7f6)) +* resolve [#109](https://github.com/Santisoutoo/LexFlow/issues/109) — [data-fidelity] S2.4 — fix(core): classify list-form derogations as repeals across a)/b) items ([278f7ce](https://github.com/Santisoutoo/LexFlow/commit/278f7ce70528590532df0c6dfd192099c2758b4e)) +* resolve [#111](https://github.com/Santisoutoo/LexFlow/issues/111) — [data-fidelity] S1.2 — fix(core): read the full frontmatter block in parse_metadata_only (drop the 4KB cap) ([10782ba](https://github.com/Santisoutoo/LexFlow/commit/10782ba71feee239ef32526efbbeb98d9a365e0c)) +* resolve [#112](https://github.com/Santisoutoo/LexFlow/issues/112) — [data-fidelity] S1.3 — fix(core): split Article.number and Article.title in _ARTICLE_RE ([106c2d8](https://github.com/Santisoutoo/LexFlow/commit/106c2d868ef6af29ab46c9b66a129cf8698739bc)) +* resolve [#54](https://github.com/Santisoutoo/LexFlow/issues/54) — [data-fidelity] Sprint 3 — article completeness: phantoms, ranges, zero-article, duplicates ([a4d8497](https://github.com/Santisoutoo/LexFlow/commit/a4d84971c2d58888e266b44e9709ca7a8e027668)) +* resolve [#55](https://github.com/Santisoutoo/LexFlow/issues/55) — [data-fidelity] Sprint 4 — serve preámbulo/anexos + drift guardrails + golden suite ([08225a5](https://github.com/Santisoutoo/LexFlow/commit/08225a5f1ed06c93e071271c0b33efb56d7d2f16)) +* resolve [#87](https://github.com/Santisoutoo/LexFlow/issues/87) — [red-team] Sprint 1 — MCP exec & CSRF boundary (P0: consent-before-spawn, Origin allow-list) ([1b020a7](https://github.com/Santisoutoo/LexFlow/commit/1b020a7f3d3818b6e2fcb8aa10f7e84d386ab974)) +* resolve [#88](https://github.com/Santisoutoo/LexFlow/issues/88) — [red-team] Sprint 2 — trust-boundary input validation (git arg injection, provider probe, noopener) ([8f3ee36](https://github.com/Santisoutoo/LexFlow/commit/8f3ee36bef7e28015577060985761246979acbec)) +* resolve [#90](https://github.com/Santisoutoo/LexFlow/issues/90) — [red-team] Sprint 4 — availability & multi-tenant posture (off-loop dispatch, user scoping) ([c506593](https://github.com/Santisoutoo/LexFlow/commit/c506593b8098d34a8155c4f697fadb825994405a)) +* robust AGENT_RESULT/VERDICT parsing (explicit alternation, not greedy class) ([df2b9a4](https://github.com/Santisoutoo/LexFlow/commit/df2b9a4f2fecf7a1e0c19519d1a2b39468ffad74)) +* robust AGENT_RESULT/VERDICT parsing (explicit alternation) ([1bc798b](https://github.com/Santisoutoo/LexFlow/commit/1bc798b680cf1928bd92f01aa5e0e7577d7f47a1)) +* satisfy new ruff rules and bump 4 CVE-flagged dependencies ([409eec5](https://github.com/Santisoutoo/LexFlow/commit/409eec5a8050491707ffe54dbd97bbcb62d0b56a)) +* satisfy new ruff rules and bump 4 CVE-flagged dependencies ([fbc0697](https://github.com/Santisoutoo/LexFlow/commit/fbc069762b49aea492950af0359f106aa40a254d)) +* Sprint 4 frontend resilience and hardening ([#45](https://github.com/Santisoutoo/LexFlow/issues/45)) ([48f5634](https://github.com/Santisoutoo/LexFlow/commit/48f563449cd6385388c89d24c9da640210071851)) +* stop referencing secrets directly in a step if: condition ([c4a0369](https://github.com/Santisoutoo/LexFlow/commit/c4a03696737f4bad542b3b74187ea8344b8d377c)) +* stop referencing secrets directly in a step if: condition ([0673073](https://github.com/Santisoutoo/LexFlow/commit/06730736bba1d3458d85041ee8d3ed71cd3eeb01)) +* stop silent data loss in editor, chat, search, and mock builds ([#44](https://github.com/Santisoutoo/LexFlow/issues/44)) ([3540aa5](https://github.com/Santisoutoo/LexFlow/commit/3540aa599572c1d47d913d3322800f22f56759b8)) +* sync useModels cache when ModelWizard finish sets defaultModel ([86d9441](https://github.com/Santisoutoo/LexFlow/commit/86d9441c4e8d4c908b659779a6203d8b111f69d2)) +* **warmup:** startup fault-tolerance for bad laws and graph failures ([64a5045](https://github.com/Santisoutoo/LexFlow/commit/64a5045dea62bfd920b5a1fe35526f55446fc26a)) + + +### Performance + +* **chat,registry,search:** fix event-loop & concurrency hygiene (Sprint 1, [#77](https://github.com/Santisoutoo/LexFlow/issues/77)) ([0a14d97](https://github.com/Santisoutoo/LexFlow/commit/0a14d97571916a01da2f0ae69a90a0e9baf9823e)) +* speed up cold start with parallel parse paths ([#78](https://github.com/Santisoutoo/LexFlow/issues/78)) ([c7e3083](https://github.com/Santisoutoo/LexFlow/commit/c7e3083c36b2cbdb245d7a1c4bd17ceed49df7af)) + + +### Documentation + +* **agent-loop:** document model auto-escalation, circuit breaker, and orca-supervisor ([a7e9294](https://github.com/Santisoutoo/LexFlow/commit/a7e92940b6d482ee907d0b5dca8cdbdea57131fa)) +* **agent-loop:** document model auto-escalation, circuit breaker, and orca-supervisor ([ce818fd](https://github.com/Santisoutoo/LexFlow/commit/ce818fd2dab0be55b5bdfae8d9611e4fb7a9887b)) +* backfill CLAUDE.md lessons for PR [#102](https://github.com/Santisoutoo/LexFlow/issues/102)/[#103](https://github.com/Santisoutoo/LexFlow/issues/103) ([253abec](https://github.com/Santisoutoo/LexFlow/commit/253abecb279b91e2956414ee1771e0e580056ed8)) +* backfill CLAUDE.md lessons learned for PR [#102](https://github.com/Santisoutoo/LexFlow/issues/102) and [#103](https://github.com/Santisoutoo/LexFlow/issues/103) ([b83e976](https://github.com/Santisoutoo/LexFlow/commit/b83e9762464dc079318642aecda05adf91e4b6c9)) +* point CLAUDE.md §7 at the SPA UI copy glossary ([b1e8a26](https://github.com/Santisoutoo/LexFlow/commit/b1e8a26f189a9c55ebd0bf52da1b1cc5f335d256)) +* reroute agent-loop models by task and document the tier matrix ([bfb3238](https://github.com/Santisoutoo/LexFlow/commit/bfb3238d23595c269b4b4e038420a1e98761cbba)) +* reroute agent-loop models by task, add frontier-first reviewer cascade ([fcec85d](https://github.com/Santisoutoo/LexFlow/commit/fcec85d372f9ebaafb53581a30d803ca50108357)) + ## [0.75.0](https://github.com/VforVitorio/LexFlow/compare/v0.74.0...v0.75.0) (2026-07-05) diff --git a/pyproject.toml b/pyproject.toml index 07ecc9e..057e6a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "lexflow" -version = "0.75.0" +version = "0.76.0" description = "Open source platform for exploring, analyzing and querying Spanish legislation — powered by FastAPI, knowledge graphs and AI." readme = "README.md" license = { text = "Apache-2.0" } diff --git a/src/lexflow/__init__.py b/src/lexflow/__init__.py index 011ddc4..439e252 100644 --- a/src/lexflow/__init__.py +++ b/src/lexflow/__init__.py @@ -1,3 +1,3 @@ """LexFlow - Open source platform for Spanish legislation exploration and analysis.""" -__version__ = "0.75.0" +__version__ = "0.76.0" diff --git a/uv.lock b/uv.lock index ea6d29d..a346469 100644 --- a/uv.lock +++ b/uv.lock @@ -448,7 +448,7 @@ name = "cuda-bindings" version = "12.9.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cuda-pathfinder", marker = "sys_platform != 'win32'" }, + { name = "cuda-pathfinder" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/a9/c1/dabe88f52c3e3760d861401bb994df08f672ec893b8f7592dc91626adcf3/cuda_bindings-12.9.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fda147a344e8eaeca0c6ff113d2851ffca8f7dfc0a6c932374ee5c47caa649c8", size = 12151019, upload-time = "2025-10-21T14:51:43.167Z" }, @@ -1098,7 +1098,7 @@ wheels = [ [[package]] name = "lexflow" -version = "0.75.0" +version = "0.76.0" source = { editable = "." } dependencies = [ { name = "fastapi" }, @@ -1560,7 +1560,7 @@ name = "nvidia-cudnn-cu12" version = "9.10.2.21" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas-cu12", marker = "sys_platform != 'win32'" }, + { name = "nvidia-cublas-cu12" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/ba/51/e123d997aa098c61d029f76663dedbfb9bc8dcf8c60cbd6adbe42f76d049/nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:949452be657fa16687d0930933f032835951ef0892b37d2d53824d1a84dc97a8", size = 706758467, upload-time = "2025-06-06T21:54:08.597Z" }, @@ -1571,7 +1571,7 @@ name = "nvidia-cufft-cu12" version = "11.3.3.83" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink-cu12", marker = "sys_platform != 'win32'" }, + { name = "nvidia-nvjitlink-cu12" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/1f/13/ee4e00f30e676b66ae65b4f08cb5bcbb8392c03f54f2d5413ea99a5d1c80/nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d2dd21ec0b88cf61b62e6b43564355e5222e4a3fb394cac0db101f2dd0d4f74", size = 193118695, upload-time = "2025-03-07T01:45:27.821Z" }, @@ -1598,9 +1598,9 @@ name = "nvidia-cusolver-cu12" version = "11.7.3.90" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas-cu12", marker = "sys_platform != 'win32'" }, - { name = "nvidia-cusparse-cu12", marker = "sys_platform != 'win32'" }, - { name = "nvidia-nvjitlink-cu12", marker = "sys_platform != 'win32'" }, + { name = "nvidia-cublas-cu12" }, + { name = "nvidia-cusparse-cu12" }, + { name = "nvidia-nvjitlink-cu12" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/85/48/9a13d2975803e8cf2777d5ed57b87a0b6ca2cc795f9a4f59796a910bfb80/nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:4376c11ad263152bd50ea295c05370360776f8c3427b30991df774f9fb26c450", size = 267506905, upload-time = "2025-03-07T01:47:16.273Z" }, @@ -1611,7 +1611,7 @@ name = "nvidia-cusparse-cu12" version = "12.5.8.93" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink-cu12", marker = "sys_platform != 'win32'" }, + { name = "nvidia-nvjitlink-cu12" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/c2/f5/e1854cb2f2bcd4280c44736c93550cc300ff4b8c95ebe370d0aa7d2b473d/nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ec05d76bbbd8b61b06a80e1eaf8cf4959c3d4ce8e711b65ebd0443bb0ebb13b", size = 288216466, upload-time = "2025-03-07T01:48:13.779Z" },