claude-bot and Claude Opus 5.5
bf274fb5a3
fix(house): anonymous readers follow only redirects public at fold time
...
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ArticleQueries serves anonymous readers only the redirects listed in
publicRedirects, so a retired slug whose article was not public (or a chain
through one) answers the usual 404, identical to a missing slug. Signed-in
readers follow every redirect. Body links of the anonymous view resolve
through the same filtered set.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 10:17:54 +01:00
claude-bot and Claude Opus 5.5
4706e49fd7
fix(encyclopedia): planning survives model errors, thin articles wait for fold
...
- A text-model HttpRequestException skips its assign batch (not remembered),
split or fold article; only embedding/index failures end planning.
- Neighbour timeouts (TaskCanceledException, run not cancelled) count as
service down.
- Thin articles with a nearby article and no keep at their inputs are not
written until their fold decision; split children of the run are not
folded.
- NearestAsync widens its query up to 8x the batch size, then fills from
the open notes in slug order.
- Deleted articles' slugs (and redirects to them) stay reserved in
_plan.json "retired"; a note left without articles is unassigned, not
skipped.
- Fold records whether the folded article was public in both languages
("publicRedirects"); repointed redirects keep their flag.
- Assigned counts only notes assigned to an article.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 10:17:38 +01:00
claude-bot and Claude Opus 5.5
61af595614
fix(house): redirect lookup survives store failures
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 09:57:07 +01:00
claude-bot and Claude Opus 5.5
41a54a5844
feat(house): follow article redirects
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 09:50:55 +01:00
claude-bot and Claude Opus 5.5
b41bee9743
feat(encyclopedia): reconcile through bounded assign, split and fold
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 09:42:32 +01:00
claude-bot and Claude Opus 5.5
7a6cfc5124
feat(encyclopedia): writer links only to bounded targets
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 09:24:12 +01:00
claude-bot and Claude Opus 5.5
2d94f9a8d8
feat(encyclopedia): fold thin articles into a neighbour
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 09:21:32 +01:00
claude-bot and Claude Opus 5.5
ad45fe4ac2
feat(encyclopedia): split oversized articles
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 09:21:16 +01:00
claude-bot and Claude Sonnet 5.5
a5322e71d2
fix(encyclopedia): tighten assign tests and first-paragraph handling
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-26 09:16:24 +01:00
claude-bot and Claude Sonnet 5.5
e4384a2c54
feat(encyclopedia): assign notes in bounded batches
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-26 09:13:40 +01:00
claude-bot and Claude Opus 5.5
348f8e4f75
test(encyclopedia): cover self-hit exclusion and ranking before cap
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 09:11:24 +01:00
claude-bot and Claude Opus 5.5
45c76ac4ba
feat(encyclopedia): nearby articles through the note index
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 09:09:36 +01:00
claude-bot and Claude Opus 5.5
13d5495899
feat(encyclopedia): state v2 with per-batch and keep memory
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 09:07:19 +01:00
claude-bot and Claude Opus 5.5
996ff182c0
feat(encyclopedia): plan v2 model with assignments and redirects
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 09:04:49 +01:00
claude-bot and Claude Opus 5.5
fa45a96a81
docs: bounded encyclopedia planning implementation plan
...
ci/woodpecker/push/test Pipeline was successful
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 09:00:17 +01:00
claude-bot and Claude Opus 5.5
8d51f1958d
docs: bounded encyclopedia planning design
...
ci/woodpecker/push/test Pipeline was successful
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 08:55:20 +01:00
k.renner
e66e2ad250
Merge pull request 'feat: schedules move to cluster CronJobs' ( #18 ) from feat/external-schedules into main
...
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/release Pipeline was successful
Reviewed-on: #18
2026-10-26 06:42:51 +00:00
claude-bot and Claude Opus 5.5
61c424aac6
feat: schedules move to cluster CronJobs
...
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
The service no longer schedules work itself. POST /api/v1/encyclopedia/run
syncs and runs the encyclopedia; it answers 502 when the run fails or the
text model stopped it, so a CronJob shows a failed run as a failed Job.
The sync loop keeps its startup sync and the webhook trigger; the 30-min
interval is a CronJob calling POST /api/v1/sync.
Removed: EncyclopediaBackgroundService, Encyclopedia RunAt/TimeZone,
Wiki:Sync IntervalSeconds/RetrySeconds.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 07:35:24 +01:00
k.renner
da0f813fed
Merge pull request 'feat: house encyclopedia (Wikipedia-style articles at /house)' ( #17 ) from feat/house-encyclopedia into main
...
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/release Pipeline was successful
Reviewed-on: #17
2026-10-25 14:48:35 +00:00
k.renner
bd6dfa7e51
Merge pull request 'docs: house encyclopedia design' ( #16 ) from docs/house-encyclopedia-design into main
...
ci/woodpecker/push/release Pipeline is pending
ci/woodpecker/push/test Pipeline was canceled
Reviewed-on: #16
2026-10-25 14:48:28 +00:00
claude-bot and Claude Opus 5.5
ca12438ebb
fix(encyclopedia): leak-check slugs and titles, keep planned titles stable
...
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
A scanner hit in the slug or titles, or the German leak check flagging them, makes the article private in both languages. The plan prompt forbids concrete identifiers in titles and slugs and keeps existing titles; prompt version 5.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 15:10:09 +01:00
claude-bot and Claude Opus 5.5
3f5c41a075
fix(host): answer an anonymous request for a private article with the missing-article 404
...
The 404 offers anonymous readers the login back to the requested path.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 15:08:34 +01:00
claude-bot and Claude Opus 5.5
6a9d8204a0
fix(anthropic): fail a stalled response stream after an idle timeout
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 15:06:32 +01:00
claude-bot and Claude Opus 5.5
4e6fa1c4cc
fix(host): show a model-unavailable error on the facts page instead of dropping the circuit
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 15:05:08 +01:00
claude-bot and Claude Opus 5.5
8314424f8b
fix(core): detect IPv4 network prefixes written as .x, .*, .0/NN or a trailing dot
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 15:04:43 +01:00
claude-bot and Claude Opus 5.5
82d70e4c60
feat(host): house encyclopedia pages with anonymous public view
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 09:27:40 +01:00
claude-bot and Claude Opus 5.5
cf75cef563
fix(host): mark wiki links outside Markdig's own code spans, reject link-like targets
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 09:07:35 +01:00
claude-bot and Claude Opus 5.5
4d94c9ef9a
fix(host): allowlist article link targets, resolve wiki links before parsing, lock on leftovers
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 08:59:41 +01:00
claude-bot and Claude Opus 5.5
87f88a0fb6
feat(host): article markdown rendering with redaction, infobox, TOC, mermaid
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 08:47:58 +01:00
claude-bot and Claude Sonnet 5.5
5b625a241f
fix(host): make encyclopedia schedule tests deterministic and harden the loop
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-24 21:24:07 +02:00
claude-bot and Claude Sonnet 5.5
a99b8c9f06
feat(host): run the encyclopedia nightly after a sync
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-24 21:20:22 +02:00
claude-bot and Claude Opus 5.5
dad8c4bb63
fix(encyclopedia): symmetric frontmatter quoting, trimmed plan titles, commit before unexpected writer failure
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 21:16:02 +02:00
claude-bot and Claude Opus 5.5
ff0c07ec76
feat(encyclopedia): incremental reconciler with single-commit writes
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 21:08:30 +02:00
claude-bot and Claude Opus 5.5
8532e0e0c5
fix(encyclopedia): renumbered leak check, escaped notes, images private, fenced replies
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 21:00:12 +02:00
claude-bot and Claude Opus 5.5
9d95ae17b0
feat(encyclopedia): write, leak-check and translate pipeline
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 20:53:16 +02:00
claude-bot and Claude Opus 5.5
469cbf6bd2
fix(encyclopedia): compact plan JSON, sanitized note lines, robust state read
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 17:43:29 +02:00
claude-bot and Claude Opus 5.5
13de42b838
feat(encyclopedia): article-set planning and attempt memory
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 17:40:49 +02:00
claude-bot and Claude Opus 5.5
1ac1495a4d
feat(anthropic): long-form text model port with typed unavailability
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 17:37:25 +02:00
claude-bot and Claude Opus 5.5
572d38ef31
fix(store): map missing binary to FileNotFound, harden text read and fakes
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 17:34:05 +02:00
claude-bot and Claude Opus 5.5
d6953db0e9
feat(store): multi-file commit, text and binary read by path
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 17:31:46 +02:00
claude-bot and Claude Opus 5.5
2a80cb20af
fix(core): leak scanner covers renner.uno forms, normalized addresses, more paths and entity domains
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 17:27:28 +02:00
claude-bot and Claude Opus 5.5
ab41ef8088
feat(core): deterministic leak scanner for public article text
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 14:00:41 +02:00
claude-bot and Claude Opus 5.5
013e6cd1e2
fix(core): only ASCII space and tab count as structural whitespace
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 13:56:27 +02:00
claude-bot and Claude Opus 5.5
8c25e93cfb
fix(core): container lines in any fence and stray closers redact the rest
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 13:52:12 +02:00
claude-bot and Claude Opus 5.5
b8e48b7d16
fix(core): fail closed where the body scanner and CommonMark disagree
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 13:45:33 +02:00
claude-bot and Claude Opus 5.5
23db9e9240
feat(core): article body format and private-block redaction
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 13:33:25 +02:00
claude-bot and Claude Opus 5.5
c2cffcb291
feat(core): Article document kind under articles/<lang>/
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 13:26:53 +02:00
claude-bot and Claude Opus 5.5
e93da3990c
docs(encyclopedia): nightly run, fold in concept review
...
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
Nightly schedule (RunAt 06:00, after the 04:30 distill) instead of a
run after every sync. Reconciler never stops the host; catalog
freshness gate; failure memory in articles/_state.json; a missing or
shrunken plan never deletes; translation unit by unit with structure
reassembled by the service; links and listings to private articles
dropped for anonymous readers; media paths validated; in-page 404;
PilotSlugs; Cache-Control no-store; mermaid strict.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 12:42:55 +02:00
claude-bot and Claude Opus 5.5
206c4629aa
docs(encyclopedia): drop credential handling
...
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
Credentials in the wiki are an upstream failure, not a case the
encyclopedia handles: no credential scanner rule, no writer instruction.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 12:20:48 +02:00
claude-bot and Claude Opus 5.5
a42c978a99
docs(encyclopedia): no netbird public label; generic examples stay public
...
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
The wiki Ingress carries neither dns.renner.uno/public nor
netbird.renner.uno/public; either publishes the host via
netbird-service-sync.
The deterministic leak filter only counts this house's identifiers:
values found in the article's source notes, names under renner.uno, and
credentials. Reserved example values (RFC 5737, RFC 3849, RFC 2606)
never count. Writer and leak-check prompts keep generic examples public.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-24 11:38:02 +02:00