Repository navigation
Releases
Releases · MarkusNeusinger/cite-citadel
v0.7.1
What's Changed
- viewer: restore the open-the-original-file link on every source by @MarkusNeusinger in #154
- 0.7.1 hotfix: pin mcp 1.10-1.x, isolate doctor checks, per-run hermetic retry, clean Ctrl+C, full off-TTY lines by @MarkusNeusinger in #156
- release: 0.7.1 by @MarkusNeusinger in #175
Full Changelog: v0.7.0...v0.7.1
v0.7.0
What's Changed
- ingest: add --reingest, the delete-then-fresh-import escape hatch by @MarkusNeusinger in #139
- ingest: stop one broken page (or one broken agent) from failing the whole corpus by @MarkusNeusinger in #140
- ingest: tell the user how to repair what a failed deletion cleanup left behind by @MarkusNeusinger in #141
- workspace: recognize a shared workspace's other mounts; curate: repair dangling citations, explain failures by @MarkusNeusinger in #142
- Registry creation: sharper rules-tree triggers +
ingest --guidance, a per-run steer by @MarkusNeusinger in #143 - curate: add --guidance + paths; ingest: bounded related-source lookups by @MarkusNeusinger in #145
- ingest: add a discovery allowlist (CITADEL_INCLUDE_PATTERNS), and make the .env list syntax legible by @MarkusNeusinger in #146
- ingest: derive the chunk budget from the model's context by @MarkusNeusinger in #147
- progress: show which pass a chunked source is on, and stop printing UNC paths by @MarkusNeusinger in #148
- doctor: recognize all three CLIs as vision-capable for images mode by @MarkusNeusinger in #149
- viewer: render angle-form citations; show raw-root-relative source paths by @MarkusNeusinger in #150
- ingest: fail loud when a session deletes its own staging copy by @MarkusNeusinger in #151
- release prep 0.7.0: consolidate the changelog, rebuild all ten showcases, fix chunked-text locators by @MarkusNeusinger in #152
- release: 0.7.0 by @MarkusNeusinger in #153
Full Changelog: v0.6.0...v0.7.0
v0.6.0
What's Changed
- ingest: exclude the wiki from discovery, add a size ceiling, fix the UNC subprocess cwd by @MarkusNeusinger in #131
- llm: pass --model to every backend, replace gemini with agy, report real spend by @MarkusNeusinger in #133
- Registry pages: capture enumerable sources completely, one cited row per entry by @MarkusNeusinger in #134
- llm/doctor: surface a failed copilot session's real error, warn on model shadowing by @MarkusNeusinger in #135
- Surface failed + zero-page sources and add
citadel ingest --retryby @MarkusNeusinger in #136 - refactor: split ingest.py and llm.py by responsibility (KISS, no behavior change) by @MarkusNeusinger in #137
- release: 0.6.0 by @MarkusNeusinger in #138
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
- deps(python): bump ruff from 0.15.20 to 0.15.21 in the python-minor group across 1 directory by @dependabot[bot] in #91
- Audit follow-up: perf hotspots, correctness edges, MCP/CLI hardening, rules + CI guards by @MarkusNeusinger in #109
- docs: Obsidian-vault-as-capture-inbox example for CITADEL_RAW_DIRS by @MarkusNeusinger in #110
- refresh: budget-controlled re-verification of the oldest-checked sources by @MarkusNeusinger in #112
- docs: 2026-07 audit — internal gaps, landscape comparison, ranked backlog by @MarkusNeusinger in #113
- deps(python): bump ruff from 0.15.21 to 0.15.22 in the python-minor group by @dependabot[bot] in #111
- feat: ranked BM25 search behind the search() seam (audit backlog #1) by @MarkusNeusinger in #114
- ingest: flag all-NUL reads as cloud placeholders, never stat-cache them as done by @MarkusNeusinger in #116
- feat: per-session LLM cost accounting (audit backlog #2) by @MarkusNeusinger in #115
- feat: transcript ingest for audio/video via a whisper-CLI seam (audit backlog #3) by @MarkusNeusinger in #117
- fix: harden audio transcript ingest (chunk-locator correctness + lifecycle follow-ups) by @MarkusNeusinger in #118
- capture: conversational capture bridge (audit backlog #5) by @MarkusNeusinger in #119
- pdf: optional pypdf text-layer pre-pass with verifiable line locators by @MarkusNeusinger in #120
- server: publish MCP prompts + wiki:// resources (audit backlog #4) by @MarkusNeusinger in #121
- Hermetic agent sessions + doctor's inert-ingest-model advisory (audit backlog #6) by @MarkusNeusinger in #122
- Persist the verify-corpus lane backlog as a committed ledger (audit backlog #7) by @MarkusNeusinger in #123
- tests: pin the CFBF parser and viewer JS — the two riskiest untested surfaces (audit backlog #8) by @MarkusNeusinger in #124
- docs: sync & scheduling recipes (audit backlog #13 + #14) by @MarkusNeusinger in #125
- Resume chunked ingest from the segment that failed (audit backlog #9) by @MarkusNeusinger in #126
- Serve the wiki from a revalidated in-memory snapshot (audit backlog #15) by @MarkusNeusinger in #127
- serve: opt-in Streamable HTTP transport, token-guarded (audit backlog #12) by @MarkusNeusinger in #128
- ingest: bounded parallel ingest (
--jobs N), on a context-local wiki redirect by @MarkusNeusinger in #129 - release: 0.5.0 — release-prep audit, generated Copilot instructions, hermetic-auth hint by @MarkusNeusinger in #130
Full Changelog: v0.4.0...v0.5.0
v0.4.0
What's Changed
- ingest: make raw read-only and shrink per-session shell spawns by @MarkusNeusinger in #59
- Search-tooling: wiki_define glossary lookup + light stemming (#56) by @MarkusNeusinger in #60
- wiki_raw: preserve original heading casing in the "not a heading" error by @MarkusNeusinger in #61
- grammar/wiki_raw: recognize bold-line section headers (Heading) for § locators by @MarkusNeusinger in #66
- lint: cut advisory false positives (See-also link lists; ordinal roman numerals / fiscal labels) by @MarkusNeusinger in #64
- okf.slugify: transliterate accented titles instead of dropping the letters by @MarkusNeusinger in #67
- test(curate): lock that build_plan schedules a fix for an out-of-range locator by @MarkusNeusinger in #68
- search: weight a page's declared aliases in _score by @MarkusNeusinger in #71
- rules: teach ingest to add lay-term aliases so search bridges paraphrases by @MarkusNeusinger in #72
- docs: remove the completed refactor plan + its ~40 citations by @MarkusNeusinger in #73
- viewer: embed only the cited excerpts of raw sources by @MarkusNeusinger in #74
- viewer: compact grouped Sources, small-screen drawer layout, touch support, print styles by @MarkusNeusinger in #75
- viewer: adopt the warm brand palette with the green accent by @MarkusNeusinger in #76
- docs: add the index hub, MCP client guide, and troubleshooting FAQ by @MarkusNeusinger in #77
- doctor: warn when a newer cite-citadel is on PyPI, naming the right upgrade command by @MarkusNeusinger in #78
- viewer: cluster the map by topic communities by @MarkusNeusinger in #79
- viewer: tokenized AND search with operators, smaller bundle, reading UX pass by @MarkusNeusinger in #80
- doctor: flag a wiki whose citations resolve outside the configured raw roots by @MarkusNeusinger in #81
- viewer: damp the map's live drag physics by @MarkusNeusinger in #82
- Wiki history: stamp citadel_version on pages, auto-commit the wiki to git after ingest/curate by @MarkusNeusinger in #83
- fix: never crash on a malformed env knob; never report OK for a missing page by @MarkusNeusinger in #84
- ingest/curate: one exclusive run lock per workspace; atomic manifest/failures saves by @MarkusNeusinger in #85
- docs: close the audit's docs-sync findings by @MarkusNeusinger in #86
- rules: harden the judgment rules for small ingest models by @MarkusNeusinger in #87
- verify-corpus: add the model-discriminating stretch tier to the beverages ground truth by @MarkusNeusinger in #88
- polish: close the audit's P3 bug batch; add wiki_status MCP tool by @MarkusNeusinger in #89
- env template: two tiers — five everyday knobs up top, everything else grouped under Advanced by @MarkusNeusinger in #90
- tests: fill the audit's highest-risk coverage gaps (+21, no production change) by @MarkusNeusinger in #92
- docs: trim README 223→175 lines (cut verbatim docs/ duplicates, zero info loss) by @MarkusNeusinger in #93
- rules: five new genre briefs + two schema.md hardening fixes by @MarkusNeusinger in #94
- grammar: a spaced dash in a lines locator is a note separator, not a range by @MarkusNeusinger in #95
- verify-corpus: Mode C — grade the curate lifecycle end-to-end by @MarkusNeusinger in #96
- corpora: add clockwork (repo ingest) + flurfunk (informal genres) e2e corpora by @MarkusNeusinger in #99
- flurfunk corpus: replace real third-party URLs with reserved-domain placeholders by @MarkusNeusinger in #100
- corpora: add gazette — PDF corpus grading CITADEL_PDF_MODE (text vs images) by @MarkusNeusinger in #101
- Harden six test corpora and add a README test matrix by @MarkusNeusinger in #102
- corpora: add kontor — Office documents (OOXML + legacy OLE, an image delta, dedup & ignore) by @MarkusNeusinger in #103
- okf: a numeric tag no longer crashes search — Page.tags coerces to str by @MarkusNeusinger in #104
- rules+README: three-tier benchmark — 4 rule clarifications, model matrix, comparison by @MarkusNeusinger in #105
- rules+llm: name extracted Office images in the prompt, plan-vs-actual co-statement, chat genre brief by @MarkusNeusinger in #106
- corpora: rebuild all nine showcase wikis under the current rulebook (sonnet) by @MarkusNeusinger in #107
- release: 0.4.0 by @MarkusNeusinger in #108
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's Changed
- Release 0.2.0 by @MarkusNeusinger in #42
- Polish: root declutter, real-world quickstart, Ollama local-model path, OKF spec reconciliation by @MarkusNeusinger in #43
- chore(github): add dependabot + issue templates for the public repo by @MarkusNeusinger in #44
- Beverages deep-dive: richer demo corpus with fact-true nerd knowledge by @MarkusNeusinger in #47
- ci: add Codecov coverage reporting by @MarkusNeusinger in #48
- deps(actions): bump the actions group across 1 directory with 6 updates by @dependabot[bot] in #45
- deps(python): bump mcp from 1.28.0 to 1.28.1 in the python-minor group across 1 directory by @dependabot[bot] in #46
- Five graded showcase corpora + Pages gallery by @MarkusNeusinger in #49
- verify-corpus: grade retrieval-first via citadel's own read tools by @MarkusNeusinger in #50
- search: weight rare terms with IDF so lookups beat generic pages by @MarkusNeusinger in #51
- grammar: home the locator parser; fix combined '§ Heading, line N' false positives by @MarkusNeusinger in #52
- feat: wiki_raw / citadel raw — read the raw source behind a citation by @MarkusNeusinger in #53
- feat: wiki_neighbors / citadel neighbors — walk a page's link graph by @MarkusNeusinger in #54
- release: 0.3.0 by @MarkusNeusinger in #55
New Contributors
- @dependabot[bot] made their first contribution in #45
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
- README: PyPI-safe absolute links; OKF spec and Karpathy gist linked directly by @MarkusNeusinger in #35
- Incremental discovery + multi-root raw: zero content reads on no-op runs, deletion safe by construction by @MarkusNeusinger in #36
- ingest --force, promote-once segments, one SourceJob loop by @MarkusNeusinger in #37
- curate v1: offline detectors + staged page-cluster sessions; citadel status; full CLI/MCP parity by @MarkusNeusinger in #38
- Store hygiene: thin facade over four modules, 45x faster index rebuilds, write_page guard by @MarkusNeusinger in #39
- Corpora framework: three graded test corpora, verify-corpus skill, showcase as a real workspace by @MarkusNeusinger in #40
- OSS polish: Z12 legal hygiene, citadel doctor, open-pr skill, sdist excludes by @MarkusNeusinger in #41
Full Changelog: v0.1.0...v0.2.0
v0.1.0
What's Changed
- Agentic direct-edit ingest, strict validators, contradiction handling & interactive viewer by @MarkusNeusinger in #1
- Fix 3 ingest bugs: config-driven wiki path, durable manifest, interrupt rollback by @MarkusNeusinger in #2
- Ingest any raw file type + sub-folders; detect moves; log unreadable files by @MarkusNeusinger in #3
- Propagate raw-file changes and deletions into the wiki on ingest by @MarkusNeusinger in #4
- Support wiki/raw outside the repo (e.g. a mounted network drive) by @MarkusNeusinger in #5
- Teach ingest to use the raw path & filename as routing context by @MarkusNeusinger in #6
- Ingest PowerPoint/Word by extracting their text (zero-dependency) by @MarkusNeusinger in #7
- Ingest code for its essence, not its structure by @MarkusNeusinger in #8
- Fix ingest failure for raw sources on a network drive (shortened
resource) by @MarkusNeusinger in #9 - Make abbreviations first-class: type, generated glossary, lint nudge by @MarkusNeusinger in #10
- Tolerate a leading BOM/blank line in OKF frontmatter parsing by @MarkusNeusinger in #11
- Track which model imported each raw source by @MarkusNeusinger in #12
- Clip ingest spinner line to terminal width by @MarkusNeusinger in #13
- Ingest a git repository under raw/ as one source by @MarkusNeusinger in #14
- Harden wiki rollback against undeletable dirs on network shares by @MarkusNeusinger in #15
- Make raw sources clickable and first-class in the viewer by @MarkusNeusinger in #16
- Split overloaded Entity into Object/Person/Organization/Project; surface the sources axis by @MarkusNeusinger in #17
- Stage ingest on a sibling copy so an abort can't empty the wiki by @MarkusNeusinger in #18
- Add ingest LLM transcript logging and live verbose mode by @MarkusNeusinger in #19
- Rebrand to cite-citadel (CLI: citadel) by @MarkusNeusinger in #20
- Public-readiness: coffee+tea example corpus, ruff, CI, verify-example skill, demo wiki by @MarkusNeusinger in #21
- viewer: full-text search, provenance badges, and contradiction/LLM filters by @MarkusNeusinger in #22
- viewer: responsive reader, interactive legend, expandable map, and Obsidian-style browsing by @MarkusNeusinger in #23
- Threaded sources: genre-detected open points + derived timelines by @MarkusNeusinger in #24
- ingest: Office/legacy/Excel + images, large-file chunking, failure report, dedup by @MarkusNeusinger in #25
- Ignore OS/junk files (Thumbs.db, desktop.ini, ~$ locks) during ingest by @MarkusNeusinger in #26
- Show the in-flight source and drop the long network prefix in ingest progress by @MarkusNeusinger in #27
- Test foundation: shared fixtures, ingest-test split, server/CLI/search coverage, failures-catalog fix by @MarkusNeusinger in #28
- Viewer subpackage with real asset files; lazy-isolated OLE salvage by @MarkusNeusinger in #29
- Workspace model + packaging: citadel init, packaged rules, wheel-smoke CI, release pipeline by @MarkusNeusinger in #30
- grammar.py: single home of the citation/link/fence grammar; lint and check agree by construction by @MarkusNeusinger in #31
- Release workflow: GitHub Release no longer gated on the PyPI publish by @MarkusNeusinger in #32
- docs(refactor-plan): plan Z12 — licensing & third-party-CLI terms for public release by @MarkusNeusinger in #33
- Rules tree: split the rulebook, gut the prompt builder, per-type knobs, rules_version — gated by a full verify-example rebuild by @MarkusNeusinger in #34
New Contributors
- @MarkusNeusinger made their first contribution in #1
Full Changelog: https://github.com/MarkusNeusinger/cite-citadel/commits/v0.1.0