Consolidation could only link existing articles as parents, so subjects whose natural parent had no article (heating, lighting, floors) stayed flat. The consolidate reply may now propose new overview articles over two or more group members. An overview is written from its children's first sources (in turn, at most 12) and an article with sub-articles is never folded for being thin. The prompts name floors EG/OG/DG/KG and treat UG, KG and Keller as one floor. MaxFoldsPerRun 5 -> 100 and MaxConsolidationsPerRun 60 -> 150: a bootstrap plan of ~400 articles needs several passes and the calls are small. Prompts.Version 9 re-asks remembered consolidation groups; the plan format is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Wiki
Web interface and agent API for the Notes vault (k.renner/notes), running in the homelab
cluster. Design: kubernetes/PROPOSAL-wiki-web-api.md in the homelab repository.
Layout
src/Wiki.Core domain types, ports, vault parsing — references nothing
src/Wiki.Application use cases (sync, rank, status, …) — depends on Core only
src/Wiki.Adapters.* one project per external thing, each references Core only
src/Wiki.Host ASP.NET Core API + MudBlazor UI, composition root
test/Wiki.Contracts one abstract suite per port; every adapter passes its suite
Adapters are selected in appsettings.json under Wiki:; secrets come from environment
variables (Wiki__NoteStore__Gitea__Token, Wiki__Webhook__Secret, Auth__ApiKeys__<name>,
Wiki__Judges__Models__<name>__ApiKey, Wiki__AnswerModels__Models__<name>__ApiKey). Each
answer-model entry also provides the fact drafter of the same name (/facts).
Humans sign in with OpenID Connect (public client, PKCE): Auth__Oidc__Authority and
Auth__Oidc__ClientId are required; the redirect URI is https://<request host>/signin-oidc. Machines send X-Api-Key, or BasicAuth
checked against the htpasswd lines in Auth__Basic__UsersPath, a file or a mounted Secret directory
(bcrypt, apr1 or SHA1; read API only). Only /health, /ready and the HMAC-signed /webhook
answer without either.
Run
dotnet test Wiki.slnx
dotnet run --project src/Wiki.Host
Endpoints: /health (liveness), /ready (readiness), /api/v1/status, POST /rank,
POST /webhook, POST /api/v1/ask (rank + judge), POST /api/v1/questions (ask + answer
model, save: true writes output/), POST /api/v1/facts (raw source, API key),
GET /api/v1/{notes,tags,raw,reports}, POST /api/v1/lab/eval (rank evaluation over labelled
output/ questions, API key).