{
 "about": "The versions pushed in the hour 2026-11-10T23 (UTC), newest first: what each commit says changed and what is known about whether it was served. One part of library/releases.json.",
 "by": "incident.librarian@web-summit.dinis",
 "updated": "2026-11-11T11:24Z",
 "hour": "2026-11-10T23",
 "releases": [
  {
   "version": "v0.1.76",
   "run": 76,
   "tag": true,
   "run_conclusion": "success",
   "commit": "29c73a5d35",
   "pushed_at": "2026-11-10T23:59:48Z",
   "state": "served",
   "changes": [
    {
     "commit": "29c73a5d",
     "by": "incident.conductor@web-summit.dinis",
     "what": "timeline: the press after Web Summit's 19:09 page (first at 19:41), and the wire under the coverage (incident.media@'s first read)"
    }
   ]
  },
  {
   "version": "v0.1.75",
   "run": 75,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "6f7263cacb",
   "pushed_at": "2026-11-10T23:59:40Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "4938594f",
     "by": "incident.librarian@web-summit.dinis",
     "what": "a draft behaviour policy for each of the 11 agents (agents/<role>/policy.md; not agreed by Dinis), tools/library-abp.mjs, library/abp.json, library/abp.md; library/index.json no longer tracked (over 256 KB: the build makes it into the served site); status"
    },
    {
     "commit": "6f7263ca",
     "by": "incident.librarian@web-summit.dinis",
     "what": "the catalogue's commit record refreshed"
    }
   ]
  },
  {
   "version": "v0.1.74",
   "run": 74,
   "tag": true,
   "run_conclusion": "success",
   "commit": "84a568d7ed",
   "pushed_at": "2026-11-10T23:59:34Z",
   "state": "served",
   "changes": [
    {
     "commit": "84a568d7",
     "by": "incident.conductor@web-summit.dinis",
     "what": "Media, Weather sites and Contribute in the nav"
    }
   ]
  },
  {
   "version": "v0.1.73",
   "run": 73,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "ee465575b6",
   "pushed_at": "2026-11-10T23:59:31Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "ee465575",
     "by": "incident.media@web-summit.dinis",
     "what": "README names Renascença's storm tracker (not readable by a bot) and points to weatherwatch's map of weather sites"
    }
   ]
  },
  {
   "version": "v0.1.72",
   "run": 72,
   "tag": true,
   "run_conclusion": "success",
   "commit": "8a8e91622e",
   "pushed_at": "2026-11-10T23:59:03Z",
   "state": "served",
   "changes": [
    {
     "commit": "8a8e9162",
     "by": "incident.conductor@web-summit.dinis",
     "what": "the build rebuilds the storm graph and its tables into _site/ on every push (graph-build --out)"
    }
   ]
  },
  {
   "version": "v0.1.71",
   "run": 71,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "0664a6abf5",
   "pushed_at": "2026-11-10T23:58:52Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "0664a6ab",
     "by": "incident.weatherwatch@web-summit.dinis",
     "what": "weather-sites: drafts for a person to send (IPMA radar; EUMETSAT registration) and the check of our use of MeteoAlarm's feed against its terms (lacking: link, disclaimer, delay)"
    }
   ]
  },
  {
   "version": "v0.1.70",
   "run": 70,
   "tag": true,
   "run_conclusion": "success",
   "commit": "8c13eec580",
   "pushed_at": "2026-11-10T23:58:37Z",
   "state": "served",
   "changes": [
    {
     "commit": "8c13eec5",
     "by": "incident.conductor@web-summit.dinis",
     "what": "an unofficial, unverified signal from watcher@web-summit.jose (a track further south), labelled as such, to compare with IPMA's next communiqué"
    }
   ]
  },
  {
   "version": "v0.1.69",
   "run": 69,
   "tag": true,
   "run_conclusion": "success",
   "commit": "1e4159a7ac",
   "pushed_at": "2026-11-10T23:58:23Z",
   "state": "served",
   "changes": [
    {
     "commit": "1e4159a7",
     "by": "incident.designer@web-summit.dinis",
     "what": "design round 8: three sourced facts in one sentence above the strip; the changes block trimmed; radar and satellite as links only; \"what we measured\" from gap.json"
    }
   ]
  },
  {
   "version": "v0.1.68",
   "run": 68,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "96ff00c4d1",
   "pushed_at": "2026-11-10T23:58:08Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "96ff00c4",
     "by": "incident.media@web-summit.dinis",
     "what": "media watch (212 items, 16 outlets, by-lines as printed; official and social channels; ranking), Wikipedia history (pt article, en redirect), contribute.md, outreach drafts (none sent)"
    }
   ]
  },
  {
   "version": "v0.1.67",
   "run": 67,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "6efae2c71a",
   "pushed_at": "2026-11-10T23:58:02Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "6efae2c7",
     "by": "incident.graph@web-summit.dinis",
     "what": "graph-build --out for the build; the graph in two files; IPMA's issue times, signal ids and the coverage sites in the graph; two more questions"
    }
   ]
  },
  {
   "version": "v0.1.66",
   "run": 66,
   "tag": true,
   "run_conclusion": "success",
   "commit": "0ff49d8f41",
   "pushed_at": "2026-11-10T23:57:57Z",
   "state": "served",
   "changes": [
    {
     "commit": "0ff49d8f",
     "by": "incident.conductor@web-summit.dinis",
     "what": "sync: decision edges carry effect_from_utc / effect_to_utc from the sources' own words (the researcher); red rain 09:00 edge; CP's bridge trains 12:00 to 15:00"
    }
   ]
  },
  {
   "version": "v0.1.65",
   "run": 65,
   "tag": true,
   "run_conclusion": "success",
   "commit": "c7c52ae33b",
   "pushed_at": "2026-11-10T23:57:35Z",
   "state": "served",
   "changes": [
    {
     "commit": "c7c52ae3",
     "by": "incident.observability@web-summit.dinis",
     "what": "release speed shows CI's own push-to-served per release (the workflow's notice, read from the public check-runs API)"
    }
   ]
  },
  {
   "version": "v0.1.64",
   "run": 64,
   "tag": true,
   "run_conclusion": "success",
   "commit": "b5922cb18a",
   "pushed_at": "2026-11-10T23:56:41Z",
   "state": "served",
   "changes": [
    {
     "commit": "b5922cb1",
     "by": "incident.weatherwatch@web-summit.dinis",
     "what": "weather-sites page: a lost code span restored"
    }
   ]
  },
  {
   "version": "v0.1.63",
   "run": 63,
   "tag": true,
   "run_conclusion": "success",
   "commit": "33b87c3bb1",
   "pushed_at": "2026-11-10T23:56:37Z",
   "state": "served",
   "changes": [
    {
     "commit": "33b87c3b",
     "by": "incident.observability@web-summit.dinis",
     "what": "asks that may be stale (a synced status file, no push here) are marked and listed last"
    }
   ]
  },
  {
   "version": "v0.1.62",
   "run": 62,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "ee81a6e0bf",
   "pushed_at": "2026-11-10T23:56:32Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "ee81a6e0",
     "by": "incident.conductor@web-summit.dinis",
     "what": "policy: the librarian drafts agents/*/policy.md (behaviour policies, draft until Dinis agrees)"
    }
   ]
  },
  {
   "version": "v0.1.61",
   "run": 61,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "024562bad3",
   "pushed_at": "2026-11-10T23:56:27Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "024562ba",
     "by": "incident.weatherwatch@web-summit.dinis",
     "what": "weather-sites: gap.json (who covering Charles shows a timeline, decisions, sources, time read, hours, data: none has all six) and imagery.json (reuse terms quoted, hotlink or link only, for IPMA, EUMETSAT, Copernicus, MeteoAlarm)"
    }
   ]
  },
  {
   "version": "v0.1.60",
   "run": 60,
   "tag": true,
   "run_conclusion": "success",
   "commit": "76337b0a71",
   "pushed_at": "2026-11-10T23:56:18Z",
   "state": "served",
   "changes": [
    {
     "commit": "76337b0a",
     "by": "incident.conductor@web-summit.dinis",
     "what": "CI never cancels a running deploy (bursts of pushes were starving the site; the newest waiting push still wins); push-to-served as a notice; the build refreshes the agents' index into _site/; obs.js in the head (off until a vault exists, no place lookup)"
    }
   ]
  },
  {
   "version": "v0.1.59",
   "run": 59,
   "tag": true,
   "run_conclusion": "success",
   "commit": "73af4e3ce8",
   "pushed_at": "2026-11-10T23:55:18Z",
   "state": "served",
   "changes": [
    {
     "commit": "73af4e3c",
     "by": "incident.designer@web-summit.dinis",
     "what": "design round 7: status words and times on the warning tiles, the model rows say \"automatic, mean wind\" and why they sit below the warning, exact timeline links from the feed, the footer in one line"
    }
   ]
  },
  {
   "version": "v0.1.58",
   "run": 58,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "0740797c43",
   "pushed_at": "2026-11-10T23:55:03Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "0740797c",
     "by": "incident.conductor@web-summit.dinis",
     "what": "sync: every weather file carries next_read_utc (the meteorologist's 69bad703a)"
    }
   ]
  },
  {
   "version": "v0.1.57",
   "run": 57,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "4c23ce514f",
   "pushed_at": "2026-11-10T23:54:56Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "da396fb9",
     "by": "incident.librarian@web-summit.dinis",
     "what": "the release history: library/releases.json and its page (tools/library-releases.mjs: tags, commit subjects and a snapshot of the Actions runs); 51 runs, 29 confirmed served; status"
    },
    {
     "commit": "4c23ce51",
     "by": "incident.librarian@web-summit.dinis",
     "what": "the catalogue's commit record refreshed"
    }
   ]
  },
  {
   "version": "v0.1.56",
   "run": 56,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "3565f28d74",
   "pushed_at": "2026-11-10T23:54:50Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "3565f28d",
     "by": "incident.observability@web-summit.dinis",
     "what": "release speed per push and the model ledger on /agents/; page views built without any place lookup, off until a vault exists; the index generator takes --out; by and updated on every JSON"
    }
   ]
  },
  {
   "version": "v0.1.55",
   "run": 55,
   "tag": false,
   "run_conclusion": "failure",
   "commit": "d21b003042",
   "pushed_at": "2026-11-10T23:54:36Z",
   "state": "failed",
   "changes": [
    {
     "commit": "d21b0030",
     "by": "incident.conductor@web-summit.dinis",
     "what": "Query and Graph in the nav"
    }
   ]
  },
  {
   "version": "v0.1.54",
   "run": 54,
   "tag": false,
   "run_conclusion": "failure",
   "commit": "2445ec18af",
   "pushed_at": "2026-11-10T23:54:04Z",
   "state": "failed",
   "changes": [
    {
     "commit": "2445ec18",
     "by": "incident.graph@web-summit.dinis",
     "what": "the graph and its tables rebuilt on the 23:53 data (IPMA's red rain for Lisbon from 09:00); status"
    }
   ]
  },
  {
   "version": "v0.1.53",
   "run": 53,
   "tag": true,
   "run_conclusion": "success",
   "commit": "b3a1b25c89",
   "pushed_at": "2026-11-10T23:53:40Z",
   "state": "served",
   "changes": [
    {
     "commit": "b3a1b25c",
     "by": "incident.conductor@web-summit.dinis",
     "what": "IPMA moved Lisbon's red rain to Wednesday 09:00 (was 12:00); read at source 23:53; standfirst, F10, timeline; IPMA's real issue times from CAP (red wind 07:18, 28.7 h ahead); sync"
    }
   ]
  },
  {
   "version": "v0.1.52",
   "run": 52,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "d50facf641",
   "pushed_at": "2026-11-10T23:53:36Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "d50facf6",
     "by": "incident.designer@web-summit.dinis",
     "what": "design round 6: decisions on the same hours as the warnings (a \"Decided\" band in the day strip, from data/decisions/graph.json); the footer links to the agents and their jobs"
    }
   ]
  },
  {
   "version": "v0.1.51",
   "run": 51,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "6360a5f3c7",
   "pushed_at": "2026-11-10T23:53:31Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "6360a5f3",
     "by": "incident.identity@web-summit.dinis",
     "what": "/account/ in line with design/README.md (tokens only, banner and cards, light and dark, a phone); lane-configure.mjs and the drain written to SG/Send's append-lane reference, ready and not run (no call that needs the token)"
    }
   ]
  },
  {
   "version": "v0.1.50",
   "run": 50,
   "tag": true,
   "run_conclusion": "success",
   "commit": "0b40077f51",
   "pushed_at": "2026-11-10T23:53:05Z",
   "state": "served",
   "changes": [
    {
     "commit": "0b40077f",
     "by": "incident.conductor@web-summit.dinis",
     "what": "release.sh runs the path policy check before every push; policy: the root documents are the conductor's, data/query/ is the graph agent's, the check is the librarian's"
    }
   ]
  },
  {
   "version": "v0.1.49",
   "run": 49,
   "tag": true,
   "run_conclusion": "success",
   "commit": "e34f80741a",
   "pushed_at": "2026-11-10T23:52:34Z",
   "state": "served",
   "changes": [
    {
     "commit": "796772fc",
     "by": "incident.librarian@web-summit.dinis",
     "what": "agents/policy.json with the owners the conductor named; tools/policy-check.mjs (the commits about to be pushed against the policy; shared and unassigned paths warn); status"
    },
    {
     "commit": "e34f8074",
     "by": "incident.librarian@web-summit.dinis",
     "what": "the catalogue's commit record refreshed"
    }
   ]
  },
  {
   "version": "v0.1.48",
   "run": 48,
   "tag": true,
   "run_conclusion": "success",
   "commit": "3eb5918fe0",
   "pushed_at": "2026-11-10T23:51:50Z",
   "state": "served",
   "changes": [
    {
     "commit": "3eb5918f",
     "by": "incident.conductor@web-summit.dinis",
     "what": "every timeline row carries its permanent id as an anchor (the same id as in signals.json)"
    }
   ]
  },
  {
   "version": "v0.1.47",
   "run": 47,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "d6aba69783",
   "pushed_at": "2026-11-10T23:51:38Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "d6aba697",
     "by": "incident.observability@web-summit.dinis",
     "what": "the team in Silvio's Universe (Map, Circuit, Talk) on /agents/#universe: brain.js pinned at 57636ac, one adapter, no fork; the Circuit shows the fact that no agent here has a behaviour policy"
    }
   ]
  },
  {
   "version": "v0.1.46",
   "run": 46,
   "tag": true,
   "run_conclusion": "success",
   "commit": "1550a1caef",
   "pushed_at": "2026-11-10T23:51:22Z",
   "state": "served",
   "changes": [
    {
     "commit": "1550a1ca",
     "by": "incident.weatherwatch@web-summit.dinis",
     "what": "weather-sites: eleven key pages rendered and looked at; the ten ideas rewritten from what was seen (IPMA's hourly warnings row, status words, automatic numbers under a red warning)"
    }
   ]
  },
  {
   "version": "v0.1.45",
   "run": 45,
   "tag": true,
   "run_conclusion": "success",
   "commit": "3feff6c60e",
   "pushed_at": "2026-11-10T23:50:56Z",
   "state": "served",
   "changes": [
    {
     "commit": "3feff6c6",
     "by": "incident.conductor@web-summit.dinis",
     "what": "the build refreshes the library's catalogue into _site/ on every push (--out; no tracked file touched); agents/policy.json placed from the librarian's draft (not yet checked by release.sh)"
    }
   ]
  },
  {
   "version": "v0.1.44",
   "run": 44,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "60f146bfe5",
   "pushed_at": "2026-11-10T23:50:50Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "60f146bf",
     "by": "incident.designer@web-summit.dinis",
     "what": "design round 5: the conductor's review applied: theme switch and tighter masthead, \"changed in the last hour of reads\", our English under IPMA's Portuguese, feed labels and timeline links, district codes with their source"
    }
   ]
  },
  {
   "version": "v0.1.43",
   "run": 43,
   "tag": true,
   "run_conclusion": "success",
   "commit": "72f93165f3",
   "pushed_at": "2026-11-10T23:50:24Z",
   "state": "served",
   "changes": [
    {
     "commit": "55d31ab8",
     "by": "incident.librarian@web-summit.dinis",
     "what": "library-index --out DIR (touches no tracked file, for the build); the header line in the glossary; drafts for the conductor: the path policy from JOBS.md and the shape of now.json; status"
    },
    {
     "commit": "72f93165",
     "by": "incident.librarian@web-summit.dinis",
     "what": "the catalogue's commit record refreshed"
    }
   ]
  },
  {
   "version": "v0.1.42",
   "run": 42,
   "tag": true,
   "run_conclusion": "success",
   "commit": "aeab8c55fe",
   "pushed_at": "2026-11-10T23:49:46Z",
   "state": "served",
   "changes": [
    {
     "commit": "aeab8c55",
     "by": "incident.conductor@web-summit.dinis",
     "what": "the feedback box's script in every page's head (it draws nothing without a key in the browser); Account in the nav; CLAUDE.md: building a page (the design rules, the header line, generators take --out)"
    }
   ]
  },
  {
   "version": "v0.1.41",
   "run": 41,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "5ce386f1cb",
   "pushed_at": "2026-11-10T23:49:40Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "5ce386f1",
     "by": "incident.graph@web-summit.dinis",
     "what": "a database in the browser (/data/query/, five worked questions) and the graph page (/app/graph/) on the engine of Silvio's Universe"
    }
   ]
  },
  {
   "version": "v0.1.40",
   "run": 40,
   "tag": true,
   "run_conclusion": "cancelled",
   "commit": "18fe5981c0",
   "pushed_at": "2026-11-10T23:49:21Z",
   "state": "tagged",
   "changes": [
    {
     "commit": "18fe5981",
     "by": "incident.conductor@web-summit.dinis",
     "what": "every signal has a permanent id (s-<MMDD>T<HHMM>); a corrected row names the id it supersedes"
    }
   ]
  },
  {
   "version": "v0.1.39",
   "run": 39,
   "tag": true,
   "run_conclusion": "success",
   "commit": "5df495abde",
   "pushed_at": "2026-11-10T23:48:58Z",
   "state": "served",
   "changes": [
    {
     "commit": "66a5b252",
     "by": "incident.conductor@web-summit.dinis",
     "what": "the build runs the library's and the agents' generators on every push; Library in the nav; CI fails if the live site does not serve this version or a newer one (the librarian's reading: green does not mean live)"
    },
    {
     "commit": "5df495ab",
     "by": "incident.conductor@web-summit.dinis",
     "what": "the build does not run generators that write tracked files (it left the tree dirty and release.sh refused); they will write into _site/ once they take --out"
    }
   ]
  },
  {
   "version": "v0.1.38",
   "run": 38,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "5576aac387",
   "pushed_at": "2026-11-10T23:48:52Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "3883324b",
     "by": "incident.librarian@web-summit.dinis",
     "what": "23:48 wake: the catalogue rebuilt (129 files, every one with its commit record)"
    },
    {
     "commit": "5576aac3",
     "by": "incident.librarian@web-summit.dinis",
     "what": "the catalogue's commit record refreshed"
    }
   ]
  },
  {
   "version": "v0.1.37",
   "run": 37,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "b7b016596f",
   "pushed_at": "2026-11-10T23:48:26Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "7d79aaa5",
     "by": "incident.librarian@web-summit.dinis",
     "what": "status: the conductor told (the library live, five things to do, three asks); the catalogue refreshed"
    },
    {
     "commit": "b7b01659",
     "by": "incident.librarian@web-summit.dinis",
     "what": "the catalogue's commit record refreshed"
    }
   ]
  },
  {
   "version": "v0.1.36",
   "run": 36,
   "tag": true,
   "run_conclusion": "success",
   "commit": "56a4837b93",
   "pushed_at": "2026-11-10T23:47:45Z",
   "state": "served",
   "changes": [
    {
     "commit": "56a4837b",
     "by": "incident.weatherwatch@web-summit.dinis",
     "what": "research/weather-sites: sites.json (106 entries: worldwide, Portugal, who covers Storm Charles) and the page with the ranking and ten ideas for the home page"
    }
   ]
  },
  {
   "version": "v0.1.35",
   "run": 35,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "3885eaf56e",
   "pushed_at": "2026-11-10T23:47:37Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "3885eaf5",
     "by": "incident.observability@web-summit.dinis",
     "what": "who talks to whom on Angelo's live map (pinned at 57636ac, one adapter, 2D and 3D); commits snapshot as data and as the fallback when GitHub's API does not answer"
    }
   ]
  },
  {
   "version": "v0.1.34",
   "run": 34,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "b7afa4da8a",
   "pushed_at": "2026-11-10T23:47:31Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "b7afa4da",
     "by": "incident.designer@web-summit.dinis",
     "what": "design round 4: design/README.md (tokens, parts, rules for every agent's pages); document pages' typography; visible focus; the masthead stays dark in dark mode"
    }
   ]
  },
  {
   "version": "v0.1.33",
   "run": 33,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "f0369a0290",
   "pushed_at": "2026-11-10T23:47:18Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "f0369a02",
     "by": "incident.identity@web-summit.dinis",
     "what": "/account/ (a key made in the browser behind a passkey or a passphrase), the feedback box sealed to the conductor's key, the conductor's lane tools; tested end to end with throwaway keys"
    }
   ]
  },
  {
   "version": "v0.1.32",
   "run": 32,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "487818fc40",
   "pushed_at": "2026-11-10T23:47:05Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "f509c535",
     "by": "incident.librarian@web-summit.dinis",
     "what": "library/reading/ (28 pages of newsroom.sgit.ai read: what each means here; this repository against the estate's standard), library/glossary.md, tools/library-reading.mjs; the catalogue lists what is older than its sources; status"
    },
    {
     "commit": "487818fc",
     "by": "incident.librarian@web-summit.dinis",
     "what": "the catalogue's commit record refreshed"
    }
   ],
   "observed": {
    "run": 32,
    "what": "served: /version.json answered v0.1.32 with commit 487818fc40 when read at 23:49 UTC, although the run's deploy step is recorded as cancelled (job 130213112738) and no tag was pushed",
    "by": "incident.librarian@web-summit.dinis",
    "read_utc": "2026-11-10T23:49Z"
   }
  },
  {
   "version": "v0.1.31",
   "run": 31,
   "tag": true,
   "run_conclusion": "success",
   "commit": "13e6f06f07",
   "pushed_at": "2026-11-10T23:45:56Z",
   "state": "served",
   "changes": [
    {
     "commit": "13e6f06f",
     "by": "incident.designer@web-summit.dinis",
     "what": "design round 3: the day in phases for phones, the wind chart's observation table, page order (signals and Thursday above the districts)"
    }
   ]
  },
  {
   "version": "v0.1.30",
   "run": 30,
   "tag": true,
   "run_conclusion": "success",
   "commit": "9b42a2e674",
   "pushed_at": "2026-11-10T23:44:08Z",
   "state": "served",
   "changes": [
    {
     "commit": "9b42a2e6",
     "by": "incident.graph@web-summit.dinis",
     "what": "the ontology, the graph of the storm and its tables, built from the incident's JSON; session key (public half only)"
    }
   ]
  },
  {
   "version": "v0.1.29",
   "run": 29,
   "tag": true,
   "run_conclusion": "success",
   "commit": "e4ea50f1b9",
   "pushed_at": "2026-11-10T23:43:36Z",
   "state": "served",
   "changes": [
    {
     "commit": "e4ea50f1",
     "by": "incident.designer@web-summit.dinis",
     "what": "design round 2: wind on one axis (warned, forecast, observed) and where, district by district"
    }
   ]
  },
  {
   "version": "v0.1.28",
   "run": 28,
   "tag": true,
   "run_conclusion": "success",
   "commit": "084df62b8a",
   "pushed_at": "2026-11-10T23:42:56Z",
   "state": "served",
   "changes": [
    {
     "commit": "084df62b",
     "by": "incident.conductor@web-summit.dinis",
     "what": "/agents/ serves the live agents page (incident.observability@'s); nav: Agents, Jobs; the conductor's asks to Dinis pruned to the five that stand"
    }
   ]
  },
  {
   "version": "v0.1.27",
   "run": 27,
   "tag": true,
   "run_conclusion": "success",
   "commit": "f0887d03d2",
   "pushed_at": "2026-11-10T23:41:40Z",
   "state": "served",
   "changes": [
    {
     "commit": "3449349d",
     "by": "incident.librarian@web-summit.dinis",
     "what": "library/: the catalogue of everything on this site (index.json, the page, the commit record), built by tools/library-index.mjs; status"
    },
    {
     "commit": "f0887d03",
     "by": "incident.librarian@web-summit.dinis",
     "what": "the catalogue's commit record refreshed"
    }
   ]
  },
  {
   "version": "v0.1.26",
   "run": 26,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "bf037edf3e",
   "pushed_at": "2026-11-10T23:41:36Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "bf037edf",
     "by": "incident.conductor@web-summit.dinis",
     "what": "analysis rows are labelled hypothesis, never fact (timeline.mjs); the 23:23 row split into the TAF (fact) and the analysis"
    }
   ]
  },
  {
   "version": "v0.1.25",
   "run": 25,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "a485c845f8",
   "pushed_at": "2026-11-10T23:41:15Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "a485c845",
     "by": "incident.observability@web-summit.dinis",
     "what": "the agents page at /app/agents/ (every agent: doing, done, next, asks with Dinis's on top, last push, key); tools/agents-index.mjs writes data/agents/index.json"
    }
   ]
  },
  {
   "version": "v0.1.24",
   "run": 24,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "588962e3ce",
   "pushed_at": "2026-11-10T23:41:00Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "588962e3",
     "by": "incident.identity@web-summit.dinis",
     "what": "SECURITY.md (the login, the feedback lane, the reverse path, the vaults: what is public, what a stolen token or key allows, what we will not build); pki.sgit.ai's modules pinned"
    }
   ]
  },
  {
   "version": "v0.1.23",
   "run": 23,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "8c07e4ab45",
   "pushed_at": "2026-11-10T23:40:49Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "8c07e4ab",
     "by": "incident.designer@web-summit.dinis",
     "what": "design round 1: the home page as the weather presenter (warning tiles, Wednesday hour by hour, sourced Thursday card)"
    }
   ]
  },
  {
   "version": "v0.1.22",
   "run": 22,
   "tag": true,
   "run_conclusion": "success",
   "commit": "b53673e7c9",
   "pushed_at": "2026-11-10T23:39:17Z",
   "state": "served",
   "changes": [
    {
     "commit": "b53673e7",
     "by": "incident.identity@web-summit.dinis",
     "what": "session key (public half only) in data/keys.json"
    }
   ]
  },
  {
   "version": "v0.1.21",
   "run": 21,
   "tag": true,
   "run_conclusion": "success",
   "commit": "3d93ef4fd9",
   "pushed_at": "2026-11-10T23:38:37Z",
   "state": "served",
   "changes": [
    {
     "commit": "3d93ef4f",
     "by": "incident.observability@web-summit.dinis",
     "what": "session key (public half only) in data/keys.json"
    }
   ]
  },
  {
   "version": "v0.1.20",
   "run": 20,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "72a73628ab",
   "pushed_at": "2026-11-10T23:38:35Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "72a73628",
     "by": "incident.librarian@web-summit.dinis",
     "what": "session key (public half only) in data/keys.json"
    }
   ]
  },
  {
   "version": "v0.1.19",
   "run": 19,
   "tag": true,
   "run_conclusion": "cancelled",
   "commit": "066df683d4",
   "pushed_at": "2026-11-10T23:38:13Z",
   "state": "tagged",
   "changes": [
    {
     "commit": "066df683",
     "by": "incident.weatherwatch@web-summit.dinis",
     "what": "session key (public half only) in data/keys.json; status"
    }
   ]
  },
  {
   "version": "v0.1.18",
   "run": 18,
   "tag": false,
   "run_conclusion": "cancelled",
   "commit": "8b9392e6e3",
   "pushed_at": "2026-11-10T23:38:00Z",
   "state": "not confirmed",
   "changes": [
    {
     "commit": "8b9392e6",
     "by": "incident.media@web-summit.dinis",
     "what": "session key (public half only) in data/keys.json; agents/media/status.json"
    }
   ]
  },
  {
   "version": "v0.1.17",
   "run": 17,
   "tag": true,
   "run_conclusion": "success",
   "commit": "29a186ad86",
   "pushed_at": "2026-11-10T23:37:28Z",
   "state": "served",
   "changes": [
    {
     "commit": "29a186ad",
     "by": "incident.conductor@web-summit.dinis",
     "what": "the nav links the team's jobs and the brief"
    }
   ]
  },
  {
   "version": "v0.1.16",
   "run": 16,
   "tag": true,
   "run_conclusion": "success",
   "commit": "876a31e26f",
   "pushed_at": "2026-11-10T23:36:58Z",
   "state": "served",
   "changes": [
    {
     "commit": "876a31e2",
     "by": "incident.designer@web-summit.dinis",
     "what": "session key (public half only) in data/keys.json"
    }
   ]
  },
  {
   "version": "v0.1.15",
   "run": 15,
   "tag": true,
   "run_conclusion": "success",
   "commit": "cdaa2d7bf8",
   "pushed_at": "2026-11-10T23:35:36Z",
   "state": "served",
   "changes": [
    {
     "commit": "cdaa2d7b",
     "by": "incident.conductor@web-summit.dinis",
     "what": "Dinis's direction of 23:40 in BRIEF.md; agents/JOBS.md: the team and its jobs (designer, observability, identity, weatherwatch, media, librarian, graph)"
    }
   ]
  },
  {
   "version": "v0.1.14",
   "run": 14,
   "tag": true,
   "run_conclusion": "success",
   "commit": "ada2a2075b",
   "pushed_at": "2026-11-10T23:24:10Z",
   "state": "served",
   "changes": [
    {
     "commit": "ada2a207",
     "by": "incident.conductor@web-summit.dinis",
     "what": "the first TAF covering Thursday (23:00) is weaker; peak widened to 12:00-18:00 (analysis); IPMA's reds unchanged; Thursday morning behind the storm"
    }
   ]
  },
  {
   "version": "v0.1.13",
   "run": 13,
   "tag": true,
   "run_conclusion": "success",
   "commit": "44a983bfb2",
   "pushed_at": "2026-11-10T23:03:27Z",
   "state": "served",
   "changes": [
    {
     "commit": "44a983bf",
     "by": "incident.conductor@web-summit.dinis",
     "what": "23:02 wake: sync (no change to warnings, Day 3, PITCH, Night Summit or Thursday's transport at 22:23 to 22:33)"
    }
   ]
  }
 ]
}
