Synapse v1.7.0 — "llm_wiki 1:1 core parity, link-regression fix, editorial redesign"¶
Aligns the three core operations (Ingest, Review, Lint) and the generated page types 1:1 with
nashsu/llm_wiki v0.6.3, fixes the wikilink-density regression introduced in 1.6.0, brings
the new-vault onboarding to parity, and refreshes the entire frontend with a new "editorial
knowledge workspace" visual language. Behavior spec: docs/reference/LLMWIKI-CORE-LOGIC-v0.6.3.md;
decisions: ADR-0076 through ADR-0083.
Added¶
- Block-based ingest pipeline (ADR-0076): a provider-neutral port of llm_wiki's two-stage
text pipeline — markdown analysis →
---FILE:/---REVIEW:block generation → schema-validated block writer. New modulesingest/{prompts,blocks,sanitize,block_loop,block_writer,context,writer,pipeline}.py. In "blocks" mode every provider — Local, API, and the agentic CLI — runs the block loop viacomplete()."blocks"is now the default;"json"is kept as a rollback lever. - Schema-driven page routing + open page-type set (ADR-0077):
wiki/schema.pyparses theschema.md"Page Types" table into an authoritativetype → dirmap; custom types persist as a rawpage_typestring. - New-vault onboarding wizard (ADR-0081; migration 0032): a 3-step modal (name + parent dir
→ mandatory AI output language → scenario template) that auto-activates the new vault. The 5
scenario templates carry
extra_dirs+ custom page types; per-vaultvault_state.output_languagedrives the ingest language directive. index.md"Recently Updated" — a code-owned bounded catalogue section alongside the K3 per-type catalogue (ADR-0078); manualPOST /ops/overview/regenerate.- Parity E2E harness (ADR-0083): deterministic 3-doc corpus +
scripts/parity_e2e/compare.py(tolerance bands + a total-links ≥ 1.5.6 baseline regression sentinel) + runbook. - Editorial frontend redesign — a new design-token language (ink
#0F1729, cool neutrals, legible categorical page-type palette), a grouped nav rail (Create / Understand / Maintain), an editorial Wiki reader with a Connections panel (server FA2 coords, I2), a Review decision-trace card, and a shared button/badge/mono-metadata kit. Light + dark, EN/IT parity. - Home dashboard, second pass — a composition hero (total pages set large over a jewel-tone per-type bar + legend), semantic KPI states, and a primary Create action on review-preview rows.
Changed¶
- Wikilink density fixed at the prompt — the regression was diagnosed as prompt-only: the
6-type JSON scaffold had buried the single
[[wikilink]]instruction. The ported prompts restore prominent, repeated wikilink guidance and a "Connections to Existing Wiki" analysis section. - Wikilink enrich post-pass defaults OFF (ADR-0076) — llm_wiki produces links inline only; the post-pass would double-count. One opt-in toggle away.
- Review (ADR-0079): the auto-resolve sweep fires on queue drain (not per run); Create Page
defaults to a deterministic stub (
mode="stub"); block-loop REVIEW blocks are enqueued. - log.md entries use llm_wiki's
## [YYYY-MM-DD] ingest | Titleformat. overview.md is regenerated once per queue-drain batch viacomplete()at a 120s ceiling. - Generation covers all derived page types — query, comparison and synthesis pages from open questions / commensurable subjects / cross-cutting conclusions.
- Wikilinks are emitted as bare kebab-case slugs (
[[cloud-cost-explorer-api]]), the form the reference writes. - The orchestrator (3,851 → 1,493 lines) is decomposed behind a re-export facade.
Fixed¶
- The 1.6.0 wikilink-density regression.
- Onboarding no longer strands a new vault un-activated.
- Dangling wikilinks under the CLI provider — routing the CLI through the block loop lifts link resolution to ~90–100% on the 1:1 E2E.
- Block-loop non-convergence — the validator no longer counts app-managed
index/log/overviewFILE blocks as routing errors. overview.mdstayed an empty stub — the drain-timecomplete()path now produces a rich synthesis.- Review auto-resolve did nothing under the CLI — fixed with
complete()+ a 120s ceiling. - Frontend showed the wrong vault — the dashboard never synced
vault_idfrom/status.
Upgrade¶
- Run Alembic migration
0032(additive, nullablevault_state.output_language; NULL = auto). wikilink_enrich_enablednow defaults false.ingest_pipeline_formatnow defaults to"blocks"(the E2E-verified parity path). Set it to"json"to roll back to the 1.6.x loop (removal slated for 2.0.0).- Review/overview single-call timeouts default to 120s (
review_sweep_timeout_seconds,review_propose_timeout_seconds,overview_timeout_seconds).