claude-botandClaude Opus 5.5 af7ca24819
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
fix(encyclopedia): a planning reply that repeats a property is unusable
JsonObject builds its dictionary on first access and throws ArgumentException
on a repeated key, which escaped reply validation and failed the whole run
(assign reply with titleEn twice). Parsing now rejects duplicates up front, so
the reply counts as unusable like any other malformed one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 08:11:52 +01:00

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).

S
Description
No description provided
Readme
1.6 MiB
Languages
C# 92.2%
HTML 6.1%
CSS 1.2%
JavaScript 0.4%
Dockerfile 0.1%