What stands between routewatch and a 1.0 release candidate. Every open bug is fixed before any release-candidate tag (sneak/project-management#32). The state is kept in the comments here.
Model: opus-5-5
What stands between routewatch and a 1.0 release candidate. Every open bug is fixed before any release-candidate tag (https://git.eeqj.de/sneak/project-management/issues/32). The state is kept in the comments here.
Model: opus-5-5
clawbot
self-assigned this 2026-10-14 22:25:51 +02:00
Waiting for a review: #82 (critical), #83, #79 (after two reworks), #85. PR 83 lets a handler's batch grow without limit while a write runs; its reviewer weighs that against the 5 GiB memory budget.
Waiting for a rework: #80 (two findings, and a rebase).
Open issues with no PR: #56 (critical, after 55), #74 and #76 (streamer, unblocked), #75 (after 55), #69 (after 65), #72 (README and TODO.md, last; plan on the issue).
Live run of the code before these fixes (00e51d2, 5 hours): memory peaked at 616 MiB, the database reached 6.9 GB with 15.8 million live routes, and the prefix handler dropped a fifth of its updates. The live tables keep one row per prefix and peer, so they keep growing toward peers times prefixes. Disk size at steady state, and start-up time on a large database against upaas's 60-second health check, are still to be measured on the fixed code.
State on 2026-10-14, when this repository's manager slot ended. `next` is green.
Done on `next`: https://git.eeqj.de/sneak/routewatch/issues/53, https://git.eeqj.de/sneak/routewatch/issues/54, https://git.eeqj.de/sneak/routewatch/issues/57, https://git.eeqj.de/sneak/routewatch/issues/67, https://git.eeqj.de/sneak/routewatch/issues/68, https://git.eeqj.de/sneak/routewatch/issues/71, https://git.eeqj.de/sneak/routewatch/issues/73.
Open PRs:
- Waiting for a review: https://git.eeqj.de/sneak/routewatch/pulls/82 (critical), https://git.eeqj.de/sneak/routewatch/pulls/83, https://git.eeqj.de/sneak/routewatch/pulls/79 (after two reworks), https://git.eeqj.de/sneak/routewatch/pulls/85. PR 83 lets a handler's batch grow without limit while a write runs; its reviewer weighs that against the 5 GiB memory budget.
- Waiting for a rework: https://git.eeqj.de/sneak/routewatch/pulls/80 (two findings, and a rebase).
Open issues with no PR: https://git.eeqj.de/sneak/routewatch/issues/56 (critical, after 55), https://git.eeqj.de/sneak/routewatch/issues/74 and https://git.eeqj.de/sneak/routewatch/issues/76 (streamer, unblocked), https://git.eeqj.de/sneak/routewatch/issues/75 (after 55), https://git.eeqj.de/sneak/routewatch/issues/69 (after 65), https://git.eeqj.de/sneak/routewatch/issues/72 (README and `TODO.md`, last; plan on the issue).
Live run of the code before these fixes (`00e51d2`, 5 hours): memory peaked at 616 MiB, the database reached 6.9 GB with 15.8 million live routes, and the prefix handler dropped a fifth of its updates. The live tables keep one row per prefix and peer, so they keep growing toward peers times prefixes. Disk size at steady state, and start-up time on a large database against upaas's 60-second health check, are still to be measured on the fixed code.
Next unit: reviews of https://git.eeqj.de/sneak/routewatch/pulls/82 and https://git.eeqj.de/sneak/routewatch/pulls/83, then https://git.eeqj.de/sneak/routewatch/issues/56.
Model: opus-5-5
In flight: rework of #79 (fourth review asked for an index so a prefix's newest route is one search), and #56 (plan on the issue).
Queue, in order: #85 redone from sneak/prompts0653579 (plan on #52), then #76, #74, #75, #69, #72 last. Then a run on the live feed until steady state, and the audit of the candidate commit.
Model: opus-5-5
State on 2026-10-19 (new manager session). `next` is green.
Landed today: https://git.eeqj.de/sneak/routewatch/issues/55, https://git.eeqj.de/sneak/routewatch/issues/65, https://git.eeqj.de/sneak/routewatch/issues/70.
In flight: rework of https://git.eeqj.de/sneak/routewatch/pulls/79 (fourth review asked for an index so a prefix's newest route is one search), and https://git.eeqj.de/sneak/routewatch/issues/56 (plan on the issue).
Queue, in order: https://git.eeqj.de/sneak/routewatch/pulls/85 redone from `sneak/prompts` `0653579` (plan on https://git.eeqj.de/sneak/routewatch/issues/52), then https://git.eeqj.de/sneak/routewatch/issues/76, https://git.eeqj.de/sneak/routewatch/issues/74, https://git.eeqj.de/sneak/routewatch/issues/75, https://git.eeqj.de/sneak/routewatch/issues/69, https://git.eeqj.de/sneak/routewatch/issues/72 last. Then a run on the live feed until steady state, and the audit of the candidate commit.
Model: opus-5-5
A run on the live feed of 825afa2 (critical fixes in) has been going since 09:44 UTC; it found #94 and #96, both now being fixed. Still measured on that run: whether the live route tables stop growing, and start-up time on the large file.
Then #72 (README and TODO.md), a run of the fixed code, and the audit.
Model: opus-5-5
State on 2026-10-19, 11:15 UTC. `next` is green.
Landed since the last state comment: https://git.eeqj.de/sneak/routewatch/issues/66, https://git.eeqj.de/sneak/routewatch/issues/56, https://git.eeqj.de/sneak/routewatch/issues/76, https://git.eeqj.de/sneak/routewatch/issues/52, https://git.eeqj.de/sneak/routewatch/issues/74, https://git.eeqj.de/sneak/routewatch/issues/92, https://git.eeqj.de/sneak/routewatch/issues/75, https://git.eeqj.de/sneak/routewatch/issues/69.
A run on the live feed of `825afa2` (critical fixes in) has been going since 09:44 UTC; it found https://git.eeqj.de/sneak/routewatch/issues/94 and https://git.eeqj.de/sneak/routewatch/issues/96, both now being fixed. Still measured on that run: whether the live route tables stop growing, and start-up time on the large file.
Then https://git.eeqj.de/sneak/routewatch/issues/72 (README and `TODO.md`), a run of the fixed code, and the audit.
Model: opus-5-5
State on 2026-10-19, 14:15 UTC. next is at ef32082; no issue describing a bug is open.
Landed since the last state comment: #94, #96, #72.
Running now:
The audit of ef32082; its findings will be filed as issues and fixed before anything else.
A run of d84dd56 (the same code; ef32082 changed only README and TODO.md) on the live feed since 13:45 UTC, the final check of #96. In its first half hour the prefix handler dropped nothing; the run on the code before that change had dropped over a quarter of its updates.
Model: opus-5-5
State on 2026-10-19, 14:15 UTC. `next` is at `ef32082`; no issue describing a bug is open.
Landed since the last state comment: https://git.eeqj.de/sneak/routewatch/issues/94, https://git.eeqj.de/sneak/routewatch/issues/96, https://git.eeqj.de/sneak/routewatch/issues/72.
Running now:
- The audit of `ef32082`; its findings will be filed as issues and fixed before anything else.
- A run of `d84dd56` (the same code; `ef32082` changed only README and `TODO.md`) on the live feed since 13:45 UTC, the final check of https://git.eeqj.de/sneak/routewatch/issues/96. In its first half hour the prefix handler dropped nothing; the run on the code before that change had dropped over a quarter of its updates.
Model: opus-5-5
The audit of ef32082339da22ffd2f770f00f7903fbd1a4102a is done. Eleven independent finders by dimension, three skeptics per claim with a majority refuting, two further finder rounds and a completeness critic with a follow-up round, all of which found nothing new; 35 claims, 7 refuted. I judged the 28 that stood myself and merged near-duplicates into 22 issues, all assigned to clawbot.
Issues filed:
high: #103 (the home page cannot look up IPv6; percent-encoded parameters answer 400)
medium: #100 (shutdown vs upaas's 10-second stop grace, deadline ignored), #101 (a failed or cut-short peer-down delete is lost for good), #102 (the 5-second TRUNCATE checkpoint blocks writes while any read runs), #104 (the AS page reads every route of the AS), #105 (a failed WHOIS lookup is stored as complete for 30 days), #107 (Go 1.24 base image out of support), #108 (HTTP hardening the policy requires before 1.0)
Not filed: the module path (git.eeqj.de/sneak/routewatch where the policy says sneak.berlin/go/ plus the name) has no runtime effect and is the owner's call. Refuted or ruled, so not filed: the write stall of a full-table peer delete, the next-hop column showing the peer address, the transient WAL size of a big delete, the schema file's location versus the migrations layout.
Could not check:
Nothing was run (no build, test or query): every timing in the issues (final flush, peer delete, AS page, checkpoint wait) is reasoned from the code, the schema and the live-feed figures, not measured.
What the upaas proxy adds or strips (forwarded and security headers) is outside the repo; its 10-second stop grace was read from upaas's source.
The live run in progress was not used.
Image digests were not resolved to versions (no docker); the Go 1.24 pin is taken from the Dockerfile comment.
Whether a STATE message's peer string always equals the UPDATE peer string of the same peer, and whether RIRs refuse rate-limited queries with an error text, is from knowledge, not verified.
Known items:
announcements table: nothing writes it, README says so; an unbuilt feature, not a finding.
IP lookup with disagreeing origins: it returns the prefix's oldest route (first in the (prefix, last_updated) index), deterministically; documented design, not a finding.
Home page AS name search: the page says "AS name search coming soon"; an unbuilt feature, not a finding.
Judgement calls:
#108 overrules two of three skeptics, who refuted the headers and forwarded-header items as context my brief had listed; filed because REPO_POLICIES ties them to the 1.0 tag this issue is about.
The follow-up finder rounds and the critic failed once on a session limit and were rerun to completion before this comment.
Model: fable-5-1
The audit of `ef32082339da22ffd2f770f00f7903fbd1a4102a` is done. Eleven independent finders by dimension, three skeptics per claim with a majority refuting, two further finder rounds and a completeness critic with a follow-up round, all of which found nothing new; 35 claims, 7 refuted. I judged the 28 that stood myself and merged near-duplicates into 22 issues, all assigned to `clawbot`.
Issues filed:
- high: https://git.eeqj.de/sneak/routewatch/issues/103 (the home page cannot look up IPv6; percent-encoded parameters answer 400)
- medium: https://git.eeqj.de/sneak/routewatch/issues/100 (shutdown vs upaas's 10-second stop grace, deadline ignored), https://git.eeqj.de/sneak/routewatch/issues/101 (a failed or cut-short peer-down delete is lost for good), https://git.eeqj.de/sneak/routewatch/issues/102 (the 5-second TRUNCATE checkpoint blocks writes while any read runs), https://git.eeqj.de/sneak/routewatch/issues/104 (the AS page reads every route of the AS), https://git.eeqj.de/sneak/routewatch/issues/105 (a failed WHOIS lookup is stored as complete for 30 days), https://git.eeqj.de/sneak/routewatch/issues/107 (Go 1.24 base image out of support), https://git.eeqj.de/sneak/routewatch/issues/108 (HTTP hardening the policy requires before 1.0)
- low: https://git.eeqj.de/sneak/routewatch/issues/106, https://git.eeqj.de/sneak/routewatch/issues/109, https://git.eeqj.de/sneak/routewatch/issues/110, https://git.eeqj.de/sneak/routewatch/issues/111, https://git.eeqj.de/sneak/routewatch/issues/112, https://git.eeqj.de/sneak/routewatch/issues/113, https://git.eeqj.de/sneak/routewatch/issues/114, https://git.eeqj.de/sneak/routewatch/issues/115, https://git.eeqj.de/sneak/routewatch/issues/116, https://git.eeqj.de/sneak/routewatch/issues/117, https://git.eeqj.de/sneak/routewatch/issues/118, https://git.eeqj.de/sneak/routewatch/issues/119, https://git.eeqj.de/sneak/routewatch/issues/120, https://git.eeqj.de/sneak/routewatch/issues/121
Not filed: the module path (`git.eeqj.de/sneak/routewatch` where the policy says `sneak.berlin/go/` plus the name) has no runtime effect and is the owner's call. Refuted or ruled, so not filed: the write stall of a full-table peer delete, the next-hop column showing the peer address, the transient WAL size of a big delete, the schema file's location versus the migrations layout.
Could not check:
- Nothing was run (no build, test or query): every timing in the issues (final flush, peer delete, AS page, checkpoint wait) is reasoned from the code, the schema and the live-feed figures, not measured.
- What the upaas proxy adds or strips (forwarded and security headers) is outside the repo; its 10-second stop grace was read from upaas's source.
- The live run in progress was not used.
- Image digests were not resolved to versions (no docker); the Go 1.24 pin is taken from the Dockerfile comment.
- Whether a STATE message's `peer` string always equals the UPDATE `peer` string of the same peer, and whether RIRs refuse rate-limited queries with an error text, is from knowledge, not verified.
Known items:
- `announcements` table: nothing writes it, README says so; an unbuilt feature, not a finding.
- IP lookup with disagreeing origins: it returns the prefix's oldest route (first in the `(prefix, last_updated)` index), deterministically; documented design, not a finding.
- Home page AS name search: the page says "AS name search coming soon"; an unbuilt feature, not a finding.
Judgement calls:
- https://git.eeqj.de/sneak/routewatch/issues/108 overrules two of three skeptics, who refuted the headers and forwarded-header items as context my brief had listed; filed because REPO_POLICIES ties them to the 1.0 tag this issue is about.
- The follow-up finder rounds and the critic failed once on a session limit and were rerun to completion before this comment.
Model: fable-5-1
The audit's findings are being fixed one PR each. Landed: #101, #102, #103, #104, #105, #106, #107. In progress: #100 and #108. Then the low-severity ones.
The run of d84dd56 on the live feed confirmed #96 for its first three hours (nothing dropped), then showed the route tables never stop growing (37.8 million routes and 13.5 GB after 8 hours, the prefix handler dropping over half its updates by then). That is a question for sneak on #122.
Model: opus-5-5
State on 2026-10-19, 23:15 UTC.
The audit's findings are being fixed one PR each. Landed: https://git.eeqj.de/sneak/routewatch/issues/101, https://git.eeqj.de/sneak/routewatch/issues/102, https://git.eeqj.de/sneak/routewatch/issues/103, https://git.eeqj.de/sneak/routewatch/issues/104, https://git.eeqj.de/sneak/routewatch/issues/105, https://git.eeqj.de/sneak/routewatch/issues/106, https://git.eeqj.de/sneak/routewatch/issues/107. In progress: https://git.eeqj.de/sneak/routewatch/issues/100 and https://git.eeqj.de/sneak/routewatch/issues/108. Then the low-severity ones.
The run of `d84dd56` on the live feed confirmed https://git.eeqj.de/sneak/routewatch/issues/96 for its first three hours (nothing dropped), then showed the route tables never stop growing (37.8 million routes and 13.5 GB after 8 hours, the prefix handler dropping over half its updates by then). That is a question for sneak on https://git.eeqj.de/sneak/routewatch/issues/122.
Model: opus-5-5
State on 2026-10-20, 02:40 UTC. next is at 71ee2ae and green.
Every issue the audit of ef32082 filed is fixed on next, each through a reviewed PR, with the four found along the way: #92, #94, #131, #141.
One thing stands between next and a release candidate: #122, sneak's choice of which peers routewatch keeps routes from. Keeping every RIS peer, the tables never stop growing, and past about 20 million routes the prefix handler loses updates. The fix follows his answer.
71ee2ae is now running on the live feed to confirm the audit fixes there.
For the deploy, since #108: TRUSTED_PROXIES must name the reverse proxy's address, or /ip/ shows the proxy's address instead of the caller's.
Model: opus-5-5
State on 2026-10-20, 02:40 UTC. `next` is at `71ee2ae` and green.
Every issue the audit of `ef32082` filed is fixed on `next`, each through a reviewed PR, with the four found along the way: https://git.eeqj.de/sneak/routewatch/issues/92, https://git.eeqj.de/sneak/routewatch/issues/94, https://git.eeqj.de/sneak/routewatch/issues/131, https://git.eeqj.de/sneak/routewatch/issues/141.
One thing stands between `next` and a release candidate: https://git.eeqj.de/sneak/routewatch/issues/122, sneak's choice of which peers routewatch keeps routes from. Keeping every RIS peer, the tables never stop growing, and past about 20 million routes the prefix handler loses updates. The fix follows his answer.
`71ee2ae` is now running on the live feed to confirm the audit fixes there.
For the deploy, since https://git.eeqj.de/sneak/routewatch/issues/108: `TRUSTED_PROXIES` must name the reverse proxy's address, or `/ip/` shows the proxy's address instead of the caller's.
Model: opus-5-5
State on 26 October, 20:30 UTC (new manager session). next is at 71ee2ae, green, and equal to main.
Order of work, one reviewed PR each:
sneak's 22 October reports: #151 (in progress), #159, #160. #150 needs no change: the 500 came from the code that ran before the 22 October deploy (finding on the issue).
A run on the live feed to steady state, then #157, then the release candidate.
Model: opus-5-5
State on 26 October, 20:30 UTC (new manager session). `next` is at `71ee2ae`, green, and equal to `main`.
Order of work, one reviewed PR each:
1. sneak's 22 October reports: https://git.eeqj.de/sneak/routewatch/issues/151 (in progress), https://git.eeqj.de/sneak/routewatch/issues/159, https://git.eeqj.de/sneak/routewatch/issues/160. https://git.eeqj.de/sneak/routewatch/issues/150 needs no change: the 500 came from the code that ran before the 22 October deploy (finding on the issue).
2. Defects found while checking the UI: https://git.eeqj.de/sneak/routewatch/issues/162, https://git.eeqj.de/sneak/routewatch/issues/163.
3. His UI requests: https://git.eeqj.de/sneak/routewatch/issues/152, https://git.eeqj.de/sneak/routewatch/issues/153, https://git.eeqj.de/sneak/routewatch/issues/155, https://git.eeqj.de/sneak/routewatch/issues/154, https://git.eeqj.de/sneak/routewatch/issues/156, then https://git.eeqj.de/sneak/routewatch/issues/158 and https://git.eeqj.de/sneak/routewatch/issues/161.
4. https://git.eeqj.de/sneak/routewatch/issues/122, the pruned routing table, in several PRs.
5. A run on the live feed to steady state, then https://git.eeqj.de/sneak/routewatch/issues/157, then the release candidate.
Model: opus-5-5
Now: #122, the pruned routing table in memory, in five PRs (plan on the issue). Then #154, which reads that table, the live-feed run, #157 and the release candidate.
Waiting on sneak: #161, which history the prefix page keeps.
Model: opus-5-5
State on 27 October. `next` is at `7e13f28`, green, and https://git.eeqj.de/sneak/routewatch/pulls/166 holds it for `main`.
Done on `next` since the last state comment: https://git.eeqj.de/sneak/routewatch/issues/151, https://git.eeqj.de/sneak/routewatch/issues/152, https://git.eeqj.de/sneak/routewatch/issues/153, https://git.eeqj.de/sneak/routewatch/issues/155, https://git.eeqj.de/sneak/routewatch/issues/156, https://git.eeqj.de/sneak/routewatch/issues/158, https://git.eeqj.de/sneak/routewatch/issues/159, https://git.eeqj.de/sneak/routewatch/issues/160, and the defects found on the way: https://git.eeqj.de/sneak/routewatch/issues/162, https://git.eeqj.de/sneak/routewatch/issues/163, https://git.eeqj.de/sneak/routewatch/issues/165, https://git.eeqj.de/sneak/routewatch/issues/168, https://git.eeqj.de/sneak/routewatch/issues/173, https://git.eeqj.de/sneak/routewatch/issues/174, https://git.eeqj.de/sneak/routewatch/issues/177.
Now: https://git.eeqj.de/sneak/routewatch/issues/122, the pruned routing table in memory, in five PRs (plan on the issue). Then https://git.eeqj.de/sneak/routewatch/issues/154, which reads that table, the live-feed run, https://git.eeqj.de/sneak/routewatch/issues/157 and the release candidate.
Waiting on sneak: https://git.eeqj.de/sneak/routewatch/issues/161, which history the prefix page keeps.
Model: opus-5-5
State on 2026-11-03, 20:20 UTC. Work on this repo is paused for the homoicon beta; nothing is running, and no container is left. next is at 15bf20a, passes script/cibuild, and is 17 commits ahead of main.
Open PRs. Only #202 (next into main): merge-ready, assigned to sneak, body lists everything on the branch. No other PR is open, so none has failed reviews pending.
Done on next since the last state comment. From the five-day run of the live feed: #216, #217, #218, #222. From later runs: #225, #226, #229. README.md and TODO.md are rewritten (#157); a fresh read of the README at 742e759 found no failing sentence.
Left, in order.
Run next on the live feed for at least 24 hours to confirm #229; the run of 15bf20a was stopped after 3 hours. File what it finds.
#203: sneak answered on 2026-11-03 (#203 (comment)). Next is a plan that splits it into one issue per PR: the response's shape and the 200 MiB download cap first; then Onionoo, the VPN lists (ProtonVPN still to be found), the iCloud Private Relay list, PTR over DNS-over-HTTPS with its cache, and geolocation with its cache and DB-IP City Lite. The planning session was stopped before it filed anything.
State on 2026-11-03, 20:20 UTC. Work on this repo is paused for the homoicon beta; nothing is running, and no container is left. `next` is at `15bf20a`, passes `script/cibuild`, and is 17 commits ahead of `main`.
**Open PRs.** Only https://git.eeqj.de/sneak/routewatch/pulls/202 (`next` into `main`): `merge-ready`, assigned to sneak, body lists everything on the branch. No other PR is open, so none has failed reviews pending.
**Done on `next` since the last state comment.** From the five-day run of the live feed: https://git.eeqj.de/sneak/routewatch/issues/216, https://git.eeqj.de/sneak/routewatch/issues/217, https://git.eeqj.de/sneak/routewatch/issues/218, https://git.eeqj.de/sneak/routewatch/issues/222. From later runs: https://git.eeqj.de/sneak/routewatch/issues/225, https://git.eeqj.de/sneak/routewatch/issues/226, https://git.eeqj.de/sneak/routewatch/issues/229. `README.md` and `TODO.md` are rewritten (https://git.eeqj.de/sneak/routewatch/issues/157); a fresh read of the README at `742e759` found no failing sentence.
**Left, in order.**
1. Run `next` on the live feed for at least 24 hours to confirm https://git.eeqj.de/sneak/routewatch/issues/229; the run of `15bf20a` was stopped after 3 hours. File what it finds.
2. https://git.eeqj.de/sneak/routewatch/issues/203: sneak answered on 2026-11-03 (https://git.eeqj.de/sneak/routewatch/issues/203#issuecomment-165190). Next is a plan that splits it into one issue per PR: the response's shape and the 200 MiB download cap first; then Onionoo, the VPN lists (ProtonVPN still to be found), the iCloud Private Relay list, PTR over DNS-over-HTTPS with its cache, and geolocation with its cache and DB-IP City Lite. The planning session was stopped before it filed anything.
3. https://git.eeqj.de/sneak/routewatch/issues/161 waits on sneak.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What stands between routewatch and a 1.0 release candidate. Every open bug is fixed before any release-candidate tag (sneak/project-management#32). The state is kept in the comments here.
Model: opus-5-5
State on 2026-10-14, when this repository's manager slot ended.
nextis green.Done on
next: #53, #54, #57, #67, #68, #71, #73.Open PRs:
Open issues with no PR: #56 (critical, after 55), #74 and #76 (streamer, unblocked), #75 (after 55), #69 (after 65), #72 (README and
TODO.md, last; plan on the issue).Live run of the code before these fixes (
00e51d2, 5 hours): memory peaked at 616 MiB, the database reached 6.9 GB with 15.8 million live routes, and the prefix handler dropped a fifth of its updates. The live tables keep one row per prefix and peer, so they keep growing toward peers times prefixes. Disk size at steady state, and start-up time on a large database against upaas's 60-second health check, are still to be measured on the fixed code.Next unit: reviews of #82 and #83, then #56.
Model: opus-5-5
State on 2026-10-19 (new manager session).
nextis green.Landed today: #55, #65, #70.
In flight: rework of #79 (fourth review asked for an index so a prefix's newest route is one search), and #56 (plan on the issue).
Queue, in order: #85 redone from
sneak/prompts0653579(plan on #52), then #76, #74, #75, #69, #72 last. Then a run on the live feed until steady state, and the audit of the candidate commit.Model: opus-5-5
State on 2026-10-19, 11:15 UTC.
nextis green.Landed since the last state comment: #66, #56, #76, #52, #74, #92, #75, #69.
A run on the live feed of
825afa2(critical fixes in) has been going since 09:44 UTC; it found #94 and #96, both now being fixed. Still measured on that run: whether the live route tables stop growing, and start-up time on the large file.Then #72 (README and
TODO.md), a run of the fixed code, and the audit.Model: opus-5-5
State on 2026-10-19, 14:15 UTC.
nextis atef32082; no issue describing a bug is open.Landed since the last state comment: #94, #96, #72.
Running now:
ef32082; its findings will be filed as issues and fixed before anything else.d84dd56(the same code;ef32082changed only README andTODO.md) on the live feed since 13:45 UTC, the final check of #96. In its first half hour the prefix handler dropped nothing; the run on the code before that change had dropped over a quarter of its updates.Model: opus-5-5
The audit of
ef32082339da22ffd2f770f00f7903fbd1a4102ais done. Eleven independent finders by dimension, three skeptics per claim with a majority refuting, two further finder rounds and a completeness critic with a follow-up round, all of which found nothing new; 35 claims, 7 refuted. I judged the 28 that stood myself and merged near-duplicates into 22 issues, all assigned toclawbot.Issues filed:
Not filed: the module path (
git.eeqj.de/sneak/routewatchwhere the policy sayssneak.berlin/go/plus the name) has no runtime effect and is the owner's call. Refuted or ruled, so not filed: the write stall of a full-table peer delete, the next-hop column showing the peer address, the transient WAL size of a big delete, the schema file's location versus the migrations layout.Could not check:
peerstring always equals the UPDATEpeerstring of the same peer, and whether RIRs refuse rate-limited queries with an error text, is from knowledge, not verified.Known items:
announcementstable: nothing writes it, README says so; an unbuilt feature, not a finding.(prefix, last_updated)index), deterministically; documented design, not a finding.Judgement calls:
Model: fable-5-1
State on 2026-10-19, 23:15 UTC.
The audit's findings are being fixed one PR each. Landed: #101, #102, #103, #104, #105, #106, #107. In progress: #100 and #108. Then the low-severity ones.
The run of
d84dd56on the live feed confirmed #96 for its first three hours (nothing dropped), then showed the route tables never stop growing (37.8 million routes and 13.5 GB after 8 hours, the prefix handler dropping over half its updates by then). That is a question for sneak on #122.Model: opus-5-5
State on 2026-10-20, 02:40 UTC.
nextis at71ee2aeand green.Every issue the audit of
ef32082filed is fixed onnext, each through a reviewed PR, with the four found along the way: #92, #94, #131, #141.One thing stands between
nextand a release candidate: #122, sneak's choice of which peers routewatch keeps routes from. Keeping every RIS peer, the tables never stop growing, and past about 20 million routes the prefix handler loses updates. The fix follows his answer.71ee2aeis now running on the live feed to confirm the audit fixes there.For the deploy, since #108:
TRUSTED_PROXIESmust name the reverse proxy's address, or/ip/shows the proxy's address instead of the caller's.Model: opus-5-5
State on 26 October, 20:30 UTC (new manager session).
nextis at71ee2ae, green, and equal tomain.Order of work, one reviewed PR each:
Model: opus-5-5
State on 27 October.
nextis at7e13f28, green, and #166 holds it formain.Done on
nextsince the last state comment: #151, #152, #153, #155, #156, #158, #159, #160, and the defects found on the way: #162, #163, #165, #168, #173, #174, #177.Now: #122, the pruned routing table in memory, in five PRs (plan on the issue). Then #154, which reads that table, the live-feed run, #157 and the release candidate.
Waiting on sneak: #161, which history the prefix page keeps.
Model: opus-5-5
README.mdat742e759read whole against the prose rules of #157: no sentence fails.Model: fable-5-1
State on 2026-11-03, 20:20 UTC. Work on this repo is paused for the homoicon beta; nothing is running, and no container is left.
nextis at15bf20a, passesscript/cibuild, and is 17 commits ahead ofmain.Open PRs. Only #202 (
nextintomain):merge-ready, assigned to sneak, body lists everything on the branch. No other PR is open, so none has failed reviews pending.Done on
nextsince the last state comment. From the five-day run of the live feed: #216, #217, #218, #222. From later runs: #225, #226, #229.README.mdandTODO.mdare rewritten (#157); a fresh read of the README at742e759found no failing sentence.Left, in order.
nexton the live feed for at least 24 hours to confirm #229; the run of15bf20awas stopped after 3 hours. File what it finds.Model: opus-5-5