{"about":"Kolaboro shipping log. Every UTC day since the first commit of kolaboro.com, from the git history of the live branch (pub/_lovable), paths _s/kolaboro.com/ and the kolaboro worker modules. A ship is a commit made by a person (or by Claude working for one); commits by our own workflows are counted separately as data updates. Commit subjects pass a privacy filter (no project names, web addresses or emails). The full repository is private; commit ids are shown so changes can be dated. Built by GitHub Actions every hour; AI summaries are written once a day is over and checked by code.","generated_at":"2026-11-05T08:32:05Z","timezone":"UTC","today":"2026-11-05","first_day":"2026-10-19","totals":{"ships":407,"data_updates":256,"rollback_commits":1,"calendar_days":18,"days_with_ships":12,"ships_today":29,"ships_last_7_days":365},"streak":{"current":10,"current_from":"2026-10-27","counts_today":true,"longest":10,"longest_from":"2026-10-27","longest_to":"2026-11-05","rule":"Consecutive UTC days with at least one ship. A day with no ship yet today does not end the current streak until the day is over."},"definitions":{"ship":"A commit by a person (or Claude working for one) that changes files under _s/kolaboro.com/ or _worker.js/kolaboro.js / kbx*.js on the live branch.","data_update":"A commit by one of our scheduled workflows (author address @kolaboro.com), for example research data or deploy-guard records.","rollback":"A commit by the deploy guard restoring files after failed smoke checks.","summary_methods":{"ai-checked":"written by Claude from the filtered subjects, every line mapped to commits and number-checked in code","deterministic":"the most descriptive commit subjects of the day","so-far":"day in progress, commit subjects so far"}},"privacy_filter":"URLs, email addresses, @handles, domains other than kolaboro.com, names and developers of tracked projects and people's names are replaced by [link], [email], [site] or [name].","metrics":{"deploys":{"per_day":{"2026-11-05":{"checked_live":10,"pass":9,"failed":0,"rolled_back":1,"rollback_failed":0,"not_deployed":3,"smoke_checks_run":352},"2026-11-04":{"checked_live":41,"pass":41,"failed":0,"rolled_back":0,"rollback_failed":0,"not_deployed":4,"smoke_checks_run":1312},"2026-11-03":{"checked_live":31,"pass":31,"failed":0,"rolled_back":0,"rollback_failed":0,"not_deployed":4,"smoke_checks_run":992}},"source":"/data/deploys.json, written by the deploy guard (GitHub Actions) after each code push to the live branch","method":"A deploy counts when the guard saw the pushed commit answer on kolaboro.com/api/open/build and ran its smoke checks. \"Not deployed\" means the commit was not live within 12 minutes. Pushes that only change data are not guarded and not counted.","records":93,"record_since":"2026-11-03T13:00:45Z"},"commit_to_live":{"median_s":227,"p90_s":366,"samples":81,"last_7_days_median_s":227,"source":"git commit time of the deployed commit (branch pub/_lovable) and the time the deploy guard recorded it live (/data/deploys.json)","method":"For every passing guarded deploy: recorded time minus commit time. An upper bound: the recorded time is taken after the smoke checks, which take about a minute."},"rollbacks":{"automatic_rollbacks":1,"rollbacks_that_failed":0,"rollback_commits_in_git":1,"drills":0,"source":"/data/deploys.json (result rolled_back or rollback_failed) and deploy-guard commits starting \"roll back\" on the live branch","method":"The deploy guard rolls back the files changed since the last passing commit when the smoke checks fail twice."},"workflow_runs":{"per_day":{"2026-10-19":{"runs":0,"success":0,"failure":0,"cancelled":0,"other":0,"by_event":{}},"2026-10-20":{"runs":0,"success":0,"failure":0,"cancelled":0,"other":0,"by_event":{}},"2026-10-21":{"runs":0,"success":0,"failure":0,"cancelled":0,"other":0,"by_event":{}},"2026-10-22":{"runs":0,"success":0,"failure":0,"cancelled":0,"other":0,"by_event":{}},"2026-10-23":{"runs":0,"success":0,"failure":0,"cancelled":0,"other":0,"by_event":{}},"2026-10-24":{"runs":0,"success":0,"failure":0,"cancelled":0,"other":0,"by_event":{}},"2026-10-25":{"runs":0,"success":0,"failure":0,"cancelled":0,"other":0,"by_event":{}},"2026-10-26":{"runs":0,"success":0,"failure":0,"cancelled":0,"other":0,"by_event":{}},"2026-10-27":{"runs":0,"success":0,"failure":0,"cancelled":0,"other":0,"by_event":{}},"2026-10-28":{"runs":4,"success":3,"failure":1,"cancelled":0,"other":0,"by_event":{"push":1,"workflow_dispatch":3}},"2026-10-29":{"runs":2,"success":2,"failure":0,"cancelled":0,"other":0,"by_event":{"push":2}},"2026-10-30":{"runs":14,"success":14,"failure":0,"cancelled":0,"other":0,"by_event":{"schedule":6,"push":5,"workflow_dispatch":3}},"2026-10-31":{"runs":13,"success":13,"failure":0,"cancelled":0,"other":0,"by_event":{"schedule":10,"workflow_dispatch":2,"push":1}},"2026-11-01":{"runs":75,"success":40,"failure":2,"cancelled":33,"other":0,"by_event":{"workflow_run":3,"schedule":14,"push":51,"workflow_dispatch":7}},"2026-11-02":{"runs":23,"success":20,"failure":1,"cancelled":2,"other":0,"by_event":{"workflow_run":3,"schedule":14,"push":5,"workflow_dispatch":1}},"2026-11-03":{"runs":171,"success":102,"failure":14,"cancelled":55,"other":0,"by_event":{"push":127,"workflow_run":3,"schedule":18,"workflow_dispatch":23}},"2026-11-04":{"runs":140,"success":119,"failure":4,"cancelled":17,"other":0,"by_event":{"schedule":42,"workflow_run":12,"push":82,"workflow_dispatch":4}},"2026-11-05":{"runs":67,"success":42,"failure":7,"cancelled":16,"other":2,"by_event":{"push":47,"workflow_dispatch":12,"schedule":7,"workflow_run":1}}},"source":"GitHub Actions API (/repos/.../actions/runs?created=<day>), workflows whose name starts with \"Kolaboro\"","method":"Every run of a kolaboro workflow (checks, data jobs, deploy guard, probes) created that UTC day, by result. Today counts runs so far. Kept for the last 21 days.","available":true},"jobs":{"items":[{"name":"Kolaboro accessibility","file":"kolaboro-a11y.yml","schedule_utc":["47 2 * * *"],"on_push":true,"last_run_at":"2026-11-04T09:53:02Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro research agent","file":"kolaboro-agent.yml","schedule_utc":["17 6 * * 1"],"on_push":true,"last_run_at":"2026-11-05T01:54:21Z","last_event":"workflow_dispatch","last_status":"completed","last_result":"success"},{"name":"Kolaboro alerts and portal lookup","file":"kolaboro-alerts.yml","schedule_utc":["37 10 * * *"],"on_push":true,"last_run_at":"2026-11-04T18:12:02Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro backup","file":"kolaboro-backup.yml","schedule_utc":["37 2 * * *"],"on_push":true,"last_run_at":"2026-11-04T09:45:36Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro AI benchmark","file":"kolaboro-benchmark.yml","schedule_utc":[],"on_push":false,"last_run_at":"2026-11-03T22:59:02Z","last_event":"workflow_dispatch","last_status":"completed","last_result":"success"},{"name":"Kolaboro chaos drill","file":"kolaboro-chaos.yml","schedule_utc":["11 5 * * 3"],"on_push":true,"last_run_at":"2026-11-04T12:58:01Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro company graph","file":"kolaboro-company-graph.yml","schedule_utc":["41 5 * * 3"],"on_push":true,"last_run_at":"2026-11-04T13:14:54Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro data catalog","file":"kolaboro-data-catalog.yml","schedule_utc":["29 17 * * *"],"on_push":true,"last_run_at":"2026-11-05T07:23:48Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro delay index","file":"kolaboro-delay-index.yml","schedule_utc":["7 3 1 * *","37 16 * * *"],"on_push":true,"last_run_at":"2026-11-04T22:10:49Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro deploy guard","file":"kolaboro-deploy-guard.yml","schedule_utc":["7,37 * * * *"],"on_push":true,"last_run_at":"2026-11-05T08:05:41Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro developer intelligence","file":"kolaboro-devintel.yml","schedule_utc":["43 9 * * *"],"on_push":true,"last_run_at":"2026-11-04T17:29:48Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro weekly digest","file":"kolaboro-digest.yml","schedule_utc":["23 6 * * 1"],"on_push":false,"last_run_at":"2026-11-05T07:23:48Z","last_event":"workflow_dispatch","last_status":"completed","last_result":"success"},{"name":"Kolaboro discovery agent","file":"kolaboro-discover.yml","schedule_utc":["41 3 * * *","17 9 * * *","29 15 * * *","53 21 * * *"],"on_push":false,"last_run_at":"2026-11-05T02:21:09Z","last_event":"workflow_run","last_status":"completed","last_result":"success"},{"name":"Kolaboro discovery data","file":"kolaboro-discovery.yml","schedule_utc":["23 2 * * *"],"on_push":true,"last_run_at":"2026-11-05T07:20:35Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro follow-up (promises and search alerts)","file":"kolaboro-followup.yml","schedule_utc":["23 11 * * *"],"on_push":true,"last_run_at":"2026-11-05T07:13:02Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro global company graph (GLEIF)","file":"kolaboro-gleif-graph.yml","schedule_utc":["17 4 * * 2"],"on_push":true,"last_run_at":"2026-11-04T09:19:09Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro natural hazards","file":"kolaboro-hazards.yml","schedule_utc":["17 3 9 * *"],"on_push":true,"last_run_at":"2026-11-04T06:15:45Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro render index","file":"kolaboro-images.yml","schedule_utc":["51 4 * * 0"],"on_push":true,"last_run_at":"2026-11-05T07:27:28Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro insolvency watch","file":"kolaboro-insolvency-watch.yml","schedule_utc":["23 7 * * *"],"on_push":true,"last_run_at":"2026-11-04T09:02:34Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro user journeys","file":"kolaboro-journeys.yml","schedule_utc":["41 * * * *"],"on_push":true,"last_run_at":"2026-11-05T02:44:17Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro land watch (night lights, stalled sites)","file":"kolaboro-landwatch.yml","schedule_utc":["41 4 * * 3"],"on_push":true,"last_run_at":"2026-11-04T09:04:56Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro Lighthouse","file":"kolaboro-lighthouse.yml","schedule_utc":["23 4 * * *"],"on_push":true,"last_run_at":"2026-11-04T12:17:47Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro live findings","file":"kolaboro-live-findings.yml","schedule_utc":["34 * * * *"],"on_push":false,"last_run_at":"2026-11-05T08:05:41Z","last_event":"workflow_dispatch","last_status":"completed","last_result":"success"},{"name":"Kolaboro site manifest","file":"kolaboro-manifest.yml","schedule_utc":["23,53 * * * *"],"on_push":true,"last_run_at":"2026-11-05T03:46:09Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro market truth","file":"kolaboro-market-truth.yml","schedule_utc":["17 4 * * 1"],"on_push":true,"last_run_at":"2026-11-04T05:55:52Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro monitor","file":"kolaboro-monitor.yml","schedule_utc":["7 */2 * * *"],"on_push":true,"last_run_at":"2026-11-05T02:20:43Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro Bitcoin proof upgrades","file":"kolaboro-ots.yml","schedule_utc":["23 */3 * * *"],"on_push":true,"last_run_at":"2026-11-05T01:31:49Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro Parquet export","file":"kolaboro-parquet.yml","schedule_utc":["43 7 * * *"],"on_push":true,"last_run_at":"2026-11-04T15:46:40Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro plot watch","file":"kolaboro-plots.yml","schedule_utc":["23 6 * * *"],"on_push":true,"last_run_at":"2026-11-04T14:41:32Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro price index","file":"kolaboro-price-index.yml","schedule_utc":["41 14 * * *"],"on_push":true,"last_run_at":"2026-11-04T20:55:52Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro outside probe","file":"kolaboro-probe.yml","schedule_utc":["13 * * * *"],"on_push":true,"last_run_at":"2026-11-05T02:21:12Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro QA","file":"kolaboro-qa.yml","schedule_utc":["23 5 * * *"],"on_push":false,"last_run_at":"2026-11-04T13:06:44Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro quality","file":"kolaboro-quality.yml","schedule_utc":["41 6 * * *"],"on_push":true,"last_run_at":"2026-11-05T07:19:51Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro registry watch","file":"kolaboro-registry.yml","schedule_utc":["17 6 * * 2"],"on_push":false,"last_run_at":"2026-11-03T14:24:17Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro render reuse","file":"kolaboro-render-reuse.yml","schedule_utc":["37 6 * * 0"],"on_push":true,"last_run_at":"2026-11-05T07:28:06Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro restore drill","file":"kolaboro-restore.yml","schedule_utc":["17 3 * * 1"],"on_push":true,"last_run_at":"2026-11-03T09:12:29Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro satellite optical progress","file":"kolaboro-satellite-optical.yml","schedule_utc":["17 9 * * 2"],"on_push":true,"last_run_at":"2026-11-05T07:35:03Z","last_event":"workflow_dispatch","last_status":"completed","last_result":"success"},{"name":"Kolaboro satellite watch","file":"kolaboro-satellite.yml","schedule_utc":["41 7 * * 1"],"on_push":true,"last_run_at":"2026-11-05T07:35:05Z","last_event":"workflow_dispatch","last_status":"in_progress","last_result":"in_progress"},{"name":"Kolaboro security scan","file":"kolaboro-security-scan.yml","schedule_utc":["29 4 * * 2"],"on_push":true,"last_run_at":"2026-11-03T09:55:38Z","last_event":"push","last_status":"completed","last_result":"success"},{"name":"Kolaboro shipping log","file":"kolaboro-shipping.yml","schedule_utc":["19 * * * *"],"on_push":true,"last_run_at":"2026-11-05T08:30:49Z","last_event":"push","last_status":"in_progress","last_result":"in_progress"},{"name":"Kolaboro verifiers","file":"kolaboro-verifiers.yml","schedule_utc":["41 8 * * *"],"on_push":true,"last_run_at":"2026-11-04T16:35:46Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro visual diff","file":"kolaboro-visual.yml","schedule_utc":["23 15 * * *"],"on_push":true,"last_run_at":"2026-11-04T21:22:50Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro partner webhooks","file":"kolaboro-webhooks.yml","schedule_utc":["53 10 * * *"],"on_push":false,"last_run_at":"2026-11-04T18:15:55Z","last_event":"schedule","last_status":"completed","last_result":"success"},{"name":"Kolaboro log witness","file":"kolaboro-witness.yml","schedule_utc":["43 8 * * *"],"on_push":false,"last_run_at":"2026-11-04T16:36:23Z","last_event":"schedule","last_status":"completed","last_result":"success"}],"source":"workflow files on branch main (.github/workflows/kolaboro-*.yml) and the GitHub Actions API (latest run of each)","method":"Schedule as written in the workflow file (cron, UTC). Last result is the conclusion of the latest run, whatever started it."},"uptime_snapshot":{"at":"2026-11-05T08:31:45Z","data":{"uptime_7d":100,"uptime_30d":100,"probes_30d":1146,"median_ms_7d":123,"p95_ms_7d":1751},"source":"https://kolaboro.com/api/open/uptime (the figure on /status)","method":"Probes of the home page and the API from outside Cloudflare; the shipping page reads the live value and falls back to this snapshot."}},"roadmap":{"linked":36,"verified_live":36,"file":"/data/roadmap-sync.json"},"ai":{"calls_total":15,"input_tokens_total":32318,"output_tokens_total":11926,"usd_estimate_total":0.2758,"last_run":{"at":"2026-11-05T06:51:43Z","calls":4,"input_tokens":11233,"output_tokens":3028,"usd_estimate":0.0791},"model":"claude-sonnet-5-5","price_used":"USD 3 per million input tokens, 15 per million output tokens (estimate)"},"days":[{"date":"2026-10-19","ships":1,"data_updates":0,"rollbacks":0,"data_kinds":{},"page":"/changelog/2026-10-19/","page_by":"auto","digest":"861b2114d7007ead","last_commit":"2026-10-19T21:47:09Z","redactions":0,"summary":{"lines":[{"text":"A new version of the site was published. The commit subject gives no detail on what buyers will see differently.","commits":["93df4d69bbe2"]}],"method":"ai-checked","model":"claude-sonnet-5-5","checks":["1 lines, each mapped to 1 commit(s) of the day; numbers and privacy checked"],"written_at":"2026-11-05T06:47:36Z"},"commits":[{"id":"93df4d69bbe2","time":"21:47","s":"Publicar _lovable"}]},{"date":"2026-10-21","ships":1,"data_updates":0,"rollbacks":0,"data_kinds":{},"page":"/changelog/2026-10-21/","page_by":"auto","digest":"a0fd939c32420ea5","last_commit":"2026-10-21T16:20:11Z","redactions":2,"summary":{"lines":[{"text":"The site now stores its data in its own database, replacing older databases that were run by an outside website-building tool.","commits":["8b88902c3178"]},{"text":"The outside tool's visitor tracking has been removed from the site.","commits":["8b88902c3178"]},{"text":"Badges from the outside website-building tool no longer appear on the site.","commits":["8b88902c3178"]},{"text":"The option to sign in with a social account is hidden for now.","commits":["8b88902c3178"]}],"method":"ai-checked","model":"claude-sonnet-5-5","checks":["4 lines, each mapped to 1/1/1/1 commit(s) of the day; numbers and privacy checked"],"written_at":"2026-11-05T06:47:40Z"},"commits":[{"id":"8b88902c3178","time":"16:20","s":"Remove all Lovable dependencies: badges, Lovable analytics, old Lovable Cloud DBs -> own Supabase, Lovable social login hidden, [site] -> [site]"}]},{"date":"2026-10-27","ships":7,"data_updates":0,"rollbacks":0,"data_kinds":{},"page":"/changelog/2026-10-27/","page_by":"auto","digest":"47efa7af24268ef5","last_commit":"2026-10-27T22:02:32Z","redactions":0,"summary":{"lines":[{"text":"The Trust Score now uses 9 checks with set rules, and a new page explains how projects are scored.","commits":["41c27c980477","cb61c73ba9bc"]},{"text":"You can now try a payment plan checker, a risk calculator and a first check of your contract.","commits":["c031051a438f","b38a285cc4fd"]},{"text":"A sample score and report, a buyer checklist and guides show what a check looks like before you start.","commits":["cb61c73ba9bc"]},{"text":"There are now 5 destination pages with an index and a comparison table.","commits":["b38a285cc4fd"]},{"text":"The check page suggests matches as you type, and the home page is also available in Spanish.","commits":["3a053594b492"]},{"text":"Pages are easier to read, with better colour contrast, a reading progress bar and a glossary of terms.","commits":["b38a285cc4fd","c031051a438f"]}],"method":"ai-checked","model":"claude-sonnet-5-5","checks":["6 lines, each mapped to 2/2/1/1/1/2 commit(s) of the day; numbers and privacy checked"],"written_at":"2026-11-05T06:47:48Z"},"commits":[{"id":"c58a8d0557bd","time":"20:21","s":"New YC home (buyer's agents for overseas property); previous membership site moved to /old (noindex), /apply and /es redirect there"},{"id":"41c27c980477","time":"20:38","s":"Trust Score with 9 checks and rules; founder block rewritten; drop duplicate GA tag"},{"id":"cb61c73ba9bc","time":"20:58","s":"Multi-page site (check, sample score and report, how-we-score, agents, developers, investors, yield tool, checklist, guides, Bali, legal, 404), pricing and FAQ on home; kolaboro.com added to NOSPA for real 404s"},{"id":"e6c680ed4bfd","time":"21:02","s":"Canonical URLs and sitemap with trailing slashes"},{"id":"b38a285cc4fd","time":"21:21","s":"5 destination pages + index, risk calculator, buyer survey, agent academy, corrections, comparison table, newsletter, exit offer, projects.json + badge.js, llms.txt, per-page OG images, WCAG AA contrast fixes"},{"id":"3a053594b492","time":"21:44","s":"Fix role buttons (form data-role reset), role perks, two-step form, Spanish home /es, 8 academy lessons + entry exam, /check autocomplete, self-hosted Archivo fonts"},{"id":"c031051a438f","time":"22:02","s":"Interactive demo, contract first pass, payment plan checker, developer self-check, pricing, about, roadmap, changelog, press kit, glossary, TOC/reading bar/share/helpful widgets"}]},{"date":"2026-10-28","ships":24,"data_updates":3,"rollbacks":0,"data_kinds":{"research agent data":3},"page":"/changelog/2026-10-28/","page_by":"auto","digest":"3b57098a4eb7bfd6","last_commit":"2026-10-28T16:59:30Z","redactions":2,"summary":{"lines":[{"text":"You can now get a free instant desk review of a project on the check page, before deciding on the paid check.","commits":["ff929a276b7a","88e13c2d8e0b"]},{"text":"The home page now explains the difference between the free desk review and the €490 pre-purchase check.","commits":["0ae7d410ec7f"]},{"text":"You can pay for the pre-purchase check with PayPal. Refund terms are now written out clearly.","commits":["cec0ad45cb05"]},{"text":"A full sample client report shows the verdict, money paid versus built, nine checks, GPS-verified photos, and plan versus site.","commits":["c9ed17eaf0d3","6934211876f0"]},{"text":"A live research page covers 122 projects in 9 markets, with a map and a simulator showing how much money is at risk.","commits":["175e6c313818","951f0594a640"]},{"text":"After you pay, you can sign up for a client account and log in to a portal.","commits":["f4c237e04876"]}],"method":"ai-checked","model":"claude-sonnet-5-5","checks":["6 lines, each mapped to 2/1/1/2/2/1 commit(s) of the day; numbers and privacy checked"],"written_at":"2026-11-05T06:50:34Z"},"commits":[{"id":"cef20009f3c7","time":"04:07","s":"Honest copy pass, agent pay and developer fees, Indonesian agent page, buyer guides, EU cookie choice with consent mode, breadcrumb structured data"},{"id":"15c3bdb9c870","time":"04:24","s":"Research Agent page with live data, Bali now / Mexico next, share results as images, AI agent in nav"},{"id":"cec0ad45cb05","time":"04:46","s":"PayPal payments for the pre-purchase check, /thanks page, refund terms"},{"id":"af8d340b1afd","time":"04:47","s":"Investors page, what kind of company this is"},{"id":"8ebf8ef489d3","time":"06:21","s":"New hero inspection film (builds the villa milestone by milestone), live research stats on home"},{"id":"30e3930b6bda","time":"06:30","s":"About page shows both founders"},{"id":"951f0594a640","time":"07:05","s":"Money-at-risk simulator, Bali map and freshness on /research, price hints in visitor currency, back-to-top, print styles, meta fixes"},{"id":"fcab503ac5e1","time":"07:45","s":"Live cases pipeline (24 Bali projects, anonymised until verified), home band, nav"},{"id":"bbcba6c89e6e","time":"08:07","s":"Case files (4 public-record case studies, live case BALI-014, example report) as PDFs on /cases"},{"id":"a554a528c4fc","time":"08:37","s":"Case PDFs with real CC photos, agent site-visit tool, how we choose and pay agents, cases from agent data"},{"id":"6934211876f0","time":"09:05","s":"Sample client reports (advice, nine checks, actions, evidence) replace article-style case files"},{"id":"de2c89ff7877","time":"10:03","s":"Product tour (/yc) with demo video, buyer portal demo, consistent sample figures"},{"id":"ff929a276b7a","time":"10:34","s":"Instant desk review on /check (API /api/kb/*), fewer vendor mentions"},{"id":"c47ecd5d6c37","time":"10:38","s":"Desk review API error detail"},{"id":"88e13c2d8e0b","time":"10:41","s":"Desk review longer output"},{"id":"50a9fe3f8b2a","time":"11:04","s":"Private /admin dashboard, pay/return event logging"},{"id":"ec7ac97dde8c","time":"11:07","s":"Kolaboro admin: search console verified"},{"id":"f4c237e04876","time":"11:28","s":"Client accounts (signup after payment, /login, /portal), admin Clients tab, home product section"},{"id":"90c5b185f877","time":"12:50","s":"YC positioning , agent copilot (live), independence rules, developers never pay, evidence-not-guarantee wording"},{"id":"1784e038fcb8","time":"12:53","s":"/yc thesis + copilot block, pricing wording"},{"id":"cb2d436b4ce5","time":"13:56","s":"Automated agent onboarding (/agents/apply, /agents/me, exam + GPS test visit, admin Agents)"},{"id":"175e6c313818","time":"15:42","s":"122 projects in 9 markets (/research by market, /cases), /yc + /investors: margins at scale, beyond real estate"},{"id":"0ae7d410ec7f","time":"16:31","s":"Kolaboro home: clarify free desk review vs €490 check"},{"id":"c9ed17eaf0d3","time":"16:59","s":"/report/sample rebuilt as a full interactive client report (verdict, money vs built, 9 checks, verifiable GPS photos, plan vs site, copilot flags, sign-off)"}]},{"date":"2026-10-29","ships":9,"data_updates":1,"rollbacks":0,"data_kinds":{"satellite watch":1},"page":"/changelog/2026-10-29/","page_by":"auto","digest":"67648f1175acb1e3","last_commit":"2026-10-29T22:42:46Z","redactions":1,"summary":{"lines":[{"text":"You can now request a check and receive a reference for it, so you can follow your request.","commits":["6395b0f462a6"]},{"text":"The real buyer portal can now be tried as a read-only demo, so you can look around before signing up.","commits":["ee5de2dac9d4"]},{"text":"Satellite watch is now live on the technology page and updates weekly.","commits":["ab3ef4a98b98"]},{"text":"A new technology page explains how checks work, including comparing building plans with what is actually built.","commits":["63a1e2a2474b"]},{"text":"Evidence timestamps are now anchored to Bitcoin, and a verify page lets you confirm them yourself.","commits":["63a1e2a2474b"]},{"text":"A new status page, open data documents and live counters show how the service is running.","commits":["44b9a6e5902d"]}],"method":"ai-checked","model":"claude-sonnet-5-5","checks":["6 lines, each mapped to 1/1/1/1/1/1 commit(s) of the day; numbers and privacy checked"],"written_at":"2026-11-05T06:48:06Z"},"commits":[{"id":"63a1e2a2474b","time":"15:35","s":"/technology engine page, plan-vs-reality vision API, Bitcoin-anchored evidence timestamps, /verify"},{"id":"808b545cb1ee","time":"15:41","s":"Technology sample copy"},{"id":"ab3ef4a98b98","time":"20:19","s":"Satellite watch live on /technology (Sentinel-2, weekly)"},{"id":"44b9a6e5902d","time":"20:54","s":"Status page, open data docs, live counters, YC try-everything, architecture, Bitcoin block confirmations"},{"id":"e2219613e4de","time":"20:56","s":"Home engine band"},{"id":"32f34184073f","time":"20:59","s":"Counters + status wording"},{"id":"6395b0f462a6","time":"21:38","s":"Plainer home, request-a-check flow with reference, no YC-only page, trimmed footer, content-hashed CSS"},{"id":"ee5de2dac9d4","time":"22:33","s":"Real portal as demo (read-only demo buyer), official [email] emails"},{"id":"a03d9c8b3e5a","time":"22:42","s":"Admin funnel shows real steps"}]},{"date":"2026-10-30","ships":25,"data_updates":2,"rollbacks":0,"data_kinds":{"render index":1,"research agent data":1},"page":"/changelog/2026-10-30/","page_by":"auto","digest":"dacef43c89e82dac","last_commit":"2026-10-30T21:46:05Z","redactions":1,"summary":{"lines":[{"text":"Kolaboro r28: 228 projects in 27 countries with public-disclosure scorecard and map, desk review without email wall plus market comparison, analytics error fix","commits":["8533292390b7"]},{"text":"Kolaboro r25: evidence locker, document reader (all types, PDF, 8 languages), field tool, ops, follow cases, price check","commits":["2a0ffebefaa3"]},{"text":"R29: realhunt arrivals - email capture on blocked listings, no off-plan scorecard for resale homes, home-buyer copy","commits":["8b5b73a6c084"]},{"text":"Kolaboro r25: academy lessons, Spanish home, pricing includes, sample score reframed, benchmark, ops tab","commits":["931ba5b726db"]},{"text":"Kolaboro r26: UX fixes from full audit (home tools, check page, technology, status, verify, copy)","commits":["e9287d8906b4"]},{"text":"Kolaboro r28b: deeper data for Dubai and Spain projects, cases scorecard sorted by transparency","commits":["4430698f2c8e"]}],"method":"deterministic","fallback_reason":"expected 3 to 6 lines, got 7","v":2,"rejected_ai":[{"text":"The site now covers 228 projects in 27 countries, each with a scorecard showing how much the project publicly discloses, plus a map.","commits":["8533292390b7"]},{"text":"You can get a desk review of a project without giving your email, and it now comes with a market comparison.","commits":["8533292390b7","30359ae7bb65"]},{"text":"Documents you upload can now be read in all types, including PDF, in 8 languages. The answers about them are also longer.","commits":["2a0ffebefaa3","359a0ecccf73"]},{"text":"A new price check helps you compare what you are being asked to pay, and you can follow cases you care about.","commits":["2a0ffebefaa3","fb9a93dd6093"]},{"text":"The live cases page can be searched and paged, and its scorecard is sorted by how transparent each project is.","commits":["637f6a907ec1","4430698f2c8e"]},{"text":"Resale homes no longer get an off-plan scorecard, since it does not fit them.","commits":["8b5b73a6c084"]},{"text":"Numbers and claims on the site were made more honest: agent earnings shown as estimates, no 100% claim, and the sample labelled fictional.","commits":["7feaa4407805","30359ae7bb65"]}]},"commits":[{"id":"9d59f42464e4","time":"06:31","s":"Certificate reader + render reuse check on /technology, nav/footer/demo copy fixes"},{"id":"637f6a907ec1","time":"06:36","s":"/cases search + paging, honest pipeline, alt text, cert copy"},{"id":"2a0ffebefaa3","time":"07:45","s":"Kolaboro r25: evidence locker, document reader (all types, PDF, 8 languages), field tool, ops, follow cases, price check"},{"id":"4af66ed48c6a","time":"07:55","s":"Kolaboro r25: portal/agent styles"},{"id":"931ba5b726db","time":"08:02","s":"Kolaboro r25: academy lessons, Spanish home, pricing includes, sample score reframed, benchmark, ops tab"},{"id":"359a0ecccf73","time":"08:07","s":"Kolaboro worker: robust JSON from the model, longer document answers"},{"id":"fb9a93dd6093","time":"08:12","s":"Price check layout"},{"id":"ade316693166","time":"08:17","s":"Changelog 30 Oct"},{"id":"80c3792f8a24","time":"08:19","s":"Consistent market copy"},{"id":"e9287d8906b4","time":"08:35","s":"Kolaboro r26: UX fixes from full audit (home tools, check page, technology, status, verify, copy)"},{"id":"88c280c55781","time":"08:37","s":"Spanish steps layout"},{"id":"f77a5317e442","time":"08:40","s":"Demo reader, agent quality text"},{"id":"640be29de354","time":"08:42","s":"Spanish nav"},{"id":"d0f8403c61cf","time":"09:29","s":"Kolaboro r27: open metrics, lead attribution, live video from site, offline field tool, report drafts, risk graph, share and referral, pilot API, card payment copy, agent audits; fix blank destinations and research pages, security headers, form and visual fixes"},{"id":"8533292390b7","time":"10:29","s":"Kolaboro r28: 228 projects in 27 countries with public-disclosure scorecard and map, desk review without email wall plus market comparison, analytics error fix"},{"id":"4430698f2c8e","time":"10:47","s":"Kolaboro r28b: deeper data for Dubai and Spain projects, cases scorecard sorted by transparency"},{"id":"cfd9f314395e","time":"15:31","s":"Co-founder [name] on the about page, consistent deposit-protection figures"},{"id":"8b5b73a6c084","time":"18:05","s":"R29: realhunt arrivals - email capture on blocked listings, no off-plan scorecard for resale homes, home-buyer copy"},{"id":"648099f5eacc","time":"18:08","s":"R29b: 2026 demo video with voice-over and captions at /k/kolaboro-demo-2026.mp4"},{"id":"6953807715e7","time":"19:49","s":"R29c: founders intro video at an unlisted path for accelerator applications"},{"id":"c338687a005a","time":"19:57","s":"R29d: founders video next to the demo video"},{"id":"76bdaf71c6a7","time":"20:08","s":"R29e: founders video without the YC mention"},{"id":"aca7910c308e","time":"21:33","s":"Investor deck PDF at /k/kolaboro-deck.pdf"},{"id":"30359ae7bb65","time":"21:46","s":"Kolaboro r30b: buyer-first nav (How it works, Check, Pricing, Live cases, About), free desk-review field in the hero, footer with metrics and API on every page, sample labelled fictional"},{"id":"7feaa4407805","time":"21:46","s":"Kolaboro r30: honest numbers (228 projects, 43 markets, 59 image sites, real fallbacks), launching-in-Bali wording, agent earnings as estimates, no 100% claim, metrics snapshot without JS"}]},{"date":"2026-10-31","ships":8,"data_updates":2,"rollbacks":0,"data_kinds":{"research agent data":2},"page":"/changelog/2026-10-31/","page_by":"auto","digest":"253b2898fa1a4dc8","last_commit":"2026-10-31T22:04:16Z","redactions":0,"summary":{"lines":[{"text":"Project cards now show, for each check, whether it is confirmed, not confirmed, contradicted or backed by a registry, plus how many claims were tested.","commits":["256e1874a7da"]},{"text":"All 328 projects now have all 6 checks, covering 73 markets in 52 countries.","commits":["33cf51bdd217"]},{"text":"Live cases now show 100% public (6 of 6) or exactly which checks are missing. There is also a new 100% filter.","commits":["e3af416c9341"]},{"text":"After a check, you can share the result by link, save it as a PDF, and get an email follow-up.","commits":["9a8dc80227ac"]},{"text":"The sample report is lighter and has photos you can swipe through, a to-do list you can tick, and a share-with-lawyer button.","commits":["18db09b51526"]},{"text":"A new security page explains who sees your case and how it is stored. A refund line now sits next to prices.","commits":["621f36c2caf0"]}],"method":"ai-checked","model":"claude-sonnet-5-5","checks":["6 lines, each mapped to 1/1/1/1/1/1 commit(s) of the day; numbers and privacy checked"],"written_at":"2026-11-05T06:48:23Z"},"commits":[{"id":"ce50b4d75f15","time":"19:55","s":"Kolaboro r31: analytics loads after the page (all 69 pages), check field above the fold, sticky CTA hidden over hero and hero form, Escape closes menu, focus ring, 44px targets on cases, founder questions as quotes, hreflang en/es and ES link on home"},{"id":"8f1edd9c86f8","time":"19:58","s":"Kolaboro r31b: shorter home - one check field (accepts names), example report link, 3 tools plus toggle, no duplicated product list, risk result leads to a CTA with the amount, real public cases, comparison as cards on mobile, compact steps, clearer button copy"},{"id":"9a8dc80227ac","time":"20:01","s":"Kolaboro r31c: check result with share link and save as PDF, live seconds counter, email follow-up after the result, names from the home form handled; new /book page (timeline, refund, company, Service schema) linked from pricing"},{"id":"18db09b51526","time":"20:03","s":"Kolaboro r31d: sample report 1.07 MB lighter (WebP photos), full-screen photo viewer with swipe and keys, to-do list the buyer can tick, share-with-lawyer button, inline glossary (SHM, PBG, leasehold); portal installable (manifest) and 3-step first-visit tour"},{"id":"621f36c2caf0","time":"20:07","s":"Kolaboro r31e: security page (who sees your case, storage, Bitcoin timestamps, retention, if we get it wrong) linked in every footer, refund line next to prices, Service schema on pricing, llms.txt with current numbers and new pages, changelog 31 Oct, agent selection and academy links in the agents hero, contrast and ARIA fixes (axe clean on 8 key pages), asset versions bumped so the new CSS and JS skip stale caches"},{"id":"e3af416c9341","time":"20:45","s":"Kolaboro r32: live cases show 100% public (6 of 6) or exactly which checks are missing, new 100% filter and stat, map coordinates for 30 new markets"},{"id":"33cf51bdd217","time":"21:09","s":"Kolaboro r32b: 328 projects, 73 markets, 52 countries everywhere; every project on all 6 checks; home strip with the one 100% project, 10% with deposit protection, 17 with problems; progress shown as dated updates when no % is published; changelog"},{"id":"256e1874a7da","time":"21:31","s":"Kolaboro r33: cards show verification level per check (registry, confirmed, not confirmed, contradicted), confirmed score and claims tested; filter Confirmed 4+ of 6"}]},{"date":"2026-11-01","ships":86,"data_updates":23,"rollbacks":0,"data_kinds":{"research agent data":21,"render index":1,"satellite watch":1},"page":"/changelog/2026-11-01/","page_by":"auto","digest":"d03edd94f2fb0066","last_commit":"2026-11-01T22:15:43Z","redactions":0,"summary":{"lines":[{"text":"Telegram bot webhook (send a project link, get the desk review: missing items, guaranteed-return language, questions), off until the bot token and webhook secret are set","commits":["36ecd81c7938"]},{"text":"Off-plan Transparency Index (73 markets ranked live, method, top and bottom 5, sortable table, citation, CSV) and embeddable market widget for journalists (/embed/?m=)","commits":["33a8516c0c04"]},{"text":"Shipping-daily ticker on every page (live database numbers plus the dated log of what shipped, fed by the research agents; pauses on hover, static for reduced motion)","commits":["5b4ffd5cf34c"]},{"text":"Admin inbox, command palette, live refresh, lead priority, bulk actions, templates; portal getting started, since last visit, compare saved, share with lawyer, print","commits":["65bc97aa1d33"]},{"text":"Kolaboro security: PayPal receiver check, email verification page, CSV injection, safe project links, admin view token in hash, no session recording on the portal","commits":["24bc31133859"]},{"text":"Fix a syntax error in the market page renderer; small /api/open/summary for the ticker and live numbers so pages no longer download the full 1.1 MB database file","commits":["99325e86f24f"]}],"method":"deterministic","fallback_reason":"line 3 has numbers not in its commits: 1","v":2,"rejected_ai":[{"text":"Every project now has its own file with six checks, verification levels, claims, change history and overdue status. You can compare up to 4 projects.","commits":["52561beaff5c"]},{"text":"New calculators cover total cost of ownership, payment plan risk, currency risk, late handover compensation and a resale exit check.","commits":["4894c58c5f9e","97bf7ed51be1"]},{"text":"A new guide lists 52 official registers in 19 markets, what each one proves and does not, and how to search it.","commits":["94735b2ff28c"]},{"text":"A satellite viewer covers 27 market areas, with a change overlay and a cleared-land chart, so you can see if building is happening.","commits":["8e8e595ef23e"]},{"text":"Your payment plan now shows an expected date for each payment. You can export it to your calendar with a reminder 7 days before.","commits":["974f32138eb1"]},{"text":"You can save projects to a watchlist, see what changed since your last look, and print a project dossier.","commits":["546d98b1fecd"]}]},"commits":[{"id":"80e9746ab92d","time":"08:38","s":"Kolaboro r34: stage on each case card and an off-plan / under construction filter"},{"id":"a6774c5f88a8","time":"08:50","s":"Kolaboro r35: /database page (scale, verification levels, what developers publish, distribution, market table, Dataset schema) linked from every footer and the cases page; project, market and country counts now follow the published data on 65 pages; no dash ranges left in copy"},{"id":"21f1943d0a92","time":"08:50","s":"Market table region focusable for keyboard users"},{"id":"f16f2217f61d","time":"08:54","s":"Map coordinates for the new markets"},{"id":"e02c87be5103","time":"08:55","s":"Kolaboro r36: home strip shows live database scale (projects, countries, claims tested and contradicted, 100% projects, flags) and links to /database; verification legend on cases"},{"id":"c6ead1ee6b91","time":"09:14","s":"Data fetches use a 10-minute cache key so new research shows within minutes instead of an hour"},{"id":"91bf5a899024","time":"09:42","s":"Map coordinates for today's new markets"},{"id":"4970fa461665","time":"10:32","s":"Live counts on the database page footer too; fallback counts, titles and llms.txt updated to 640 projects, 114 markets, 62 countries"},{"id":"d0aa83026c4c","time":"10:37","s":"Completed-but-still-selling stage label and filter"},{"id":"5b4ffd5cf34c","time":"11:03","s":"Shipping-daily ticker on every page (live database numbers plus the dated log of what shipped, fed by the research agents; pauses on hover, static for reduced motion)"},{"id":"3c26d0260403","time":"11:04","s":"Cases stats as a clean 4x2 grid with confirmed and contradicted counts, pipeline numbers follow the live database"},{"id":"0ad842584336","time":"11:05","s":"Kolaboro home: 'What buyers are not told' - six anonymised contradictions from this week's research, each with the register, regulator or filing that caught it"},{"id":"2e55f138b86c","time":"11:06","s":"Kolaboro changelog: 1 Nov entry and daily shipping note"},{"id":"e693f88d44c0","time":"11:46","s":"Open data API without key (/api/open: stats, projects with filters, project by id, markets with transparency index, CSV, OpenAPI 3.1) and /feed.json + /feed.xml shipping feeds"},{"id":"02784a99b22a","time":"11:49","s":"Plain-language search on cases (permit, escrow, late, contradicted, price caps, years, places) with the interpreted filters shown; overdue badge; open-file and compare links on every card; open API documented; RSS link on every page"},{"id":"8421f8418b46","time":"11:49","s":"Chrome extension (MV3, activeTab + contextMenus only) that checks any project page with the free desk review, 6-point checklist, download page with install steps and privacy"},{"id":"974f32138eb1","time":"11:50","s":"Kolaboro payment plan: expected date per payment and calendar export (.ics) with a reminder 7 days before each payment"},{"id":"36ecd81c7938","time":"11:51","s":"Telegram bot webhook (send a project link, get the desk review: missing items, guaranteed-return language, questions), off until the bot token and webhook secret are set"},{"id":"52561beaff5c","time":"11:53","s":"Project file pages (/p/?id=) with six checks, verification levels, claims, change history, overdue, similar projects; compare up to 4 projects (/compare/); cases search pre-filled from ?q=; footer links to index, compare, extension and open API; sitemap"},{"id":"33a8516c0c04","time":"11:54","s":"Off-plan Transparency Index (73 markets ranked live, method, top and bottom 5, sortable table, citation, CSV) and embeddable market widget for journalists (/embed/?m=)"},{"id":"48326c3376e8","time":"11:57","s":"API docs no longer overflow on mobile and desktop (found by the daily QA run)"},{"id":"1f6351b2912e","time":"11:58","s":"Satellite site status on project files and a 'no visible change in a year' badge on under-construction cases"},{"id":"b63cc4896661","time":"12:00","s":"Kolaboro project file: official register status, re-checked weekly"},{"id":"57cc52dcabb3","time":"12:02","s":"State of Off-Plan 2026 report (fixed edition from the live database: publish gap, what holds up, regions, lateness, markets, method, citation, printable) linked from home and the database page; sitemap"},{"id":"52b2d84c26d0","time":"12:33","s":"Ask the database (plain-language questions answered by AI only from the published data, with key numbers, project links and follow-ups; cached and rate limited) on /database"},{"id":"09959feb3d25","time":"12:36","s":"Kolaboro project file: evidence fingerprint of the developer page and link to verify the daily Bitcoin seal; asset versions"},{"id":"c70455324bf4","time":"12:38","s":"Live 'machine behind the data' panel on /database (each automated job, last run, scale); satellite wording states the 10 m resolution limit"},{"id":"547478d17c01","time":"12:43","s":"Map coordinates for new markets"},{"id":"ae5fbba0ac6f","time":"12:47","s":"Map coordinates for Accra, Kigali, Nicaragua, Saint Lucia"},{"id":"d09b06ae27ab","time":"12:48","s":"Market pages (/m/?market=, country views) with index and rank, KPIs, six-check bars vs all markets, verification mix and every project; transparency index rows link to them"},{"id":"10ceedd32eb2","time":"12:50","s":"Map coordinates for Aruba, Curacao, Laos"},{"id":"d1169edc12bb","time":"12:52","s":"Fallback counts (761 projects, 137 markets, 74 countries) and Vanuatu on the map"},{"id":"8e8e595ef23e","time":"12:52","s":"Satellite watch viewer (/satellite/: 27 market areas, period stepper, change overlay, timelapse, cleared-land chart); footer links to satellite and markets"},{"id":"94735b2ff28c","time":"13:05","s":"Official registers guide (/registers/: 52 registers in 19 markets, what each proves and does not, how to search, filters by region and by what you want to check, FAQ); footer and project file links; sitemap"},{"id":"17bf244338f7","time":"16:59","s":"Public roadmap of 100 features (23 shipped, 10 building, 67 next) with progress bar and status filter; BUILDING tag in the shipping log"},{"id":"5c137162ab82","time":"17:00","s":"Feeds per market or country (/feed.xml?market=), alerts feed (overdue 6+ months, stalled from space, missing approval) and live project badges for portals (/api/open/badge/{id}.svg)"},{"id":"534b00069590","time":"17:01","s":"Kolaboro roadmap: 26 of 100 shipped"},{"id":"ad3396502735","time":"17:02","s":"Open-source scoring rules (/open/scoring.py, MIT) linked from the method page"},{"id":"a101cdd224e5","time":"17:02","s":"Kolaboro status: all scheduled jobs listed (discovery, research with Bitcoin seal, registry watch, daily QA)"},{"id":"40a573b02fb9","time":"17:03","s":"Kolaboro roadmap: 27 shipped"},{"id":"546d98b1fecd","time":"17:07","s":"Watchlist (save projects, see what changed since, export/import), printable project dossier and data quality score on every project file; green notices on project files visible again"},{"id":"efa1a5ededeb","time":"17:07","s":"Kolaboro roadmap: 30 shipped"},{"id":"01aa8ecef91e","time":"17:09","s":"Press data desk (/press/data/: 8 live charts with headlines, exact numbers, PNG and CSV downloads, embeds, quotable facts, citation)"},{"id":"fcf19c194be2","time":"17:09","s":"Kolaboro roadmap: 31 shipped"},{"id":"270d99f864d0","time":"17:10","s":"Off-Plan Disclosure Standard v1.0 (/standard/: 6 core and 8 recommended items, live share of projects meeting each, self-assessment, CC BY) and free developer templates (/developers/templates/); footer links"},{"id":"9e3e66ada207","time":"17:10","s":"Kolaboro roadmap: 33 shipped"},{"id":"4894c58c5f9e","time":"17:15","s":"Kolaboro tools: market match (markets ranked for budget, goal and must-haves), total cost of ownership with sourced typical defaults, payment plan risk score with money-at-risk curve"},{"id":"37a47f88fe73","time":"17:15","s":"Kolaboro roadmap: 36 shipped"},{"id":"97bf7ed51be1","time":"17:19","s":"Kolaboro tools: currency risk of a payment plan, late handover compensation calculator, resale exit check"},{"id":"c360337fecec","time":"17:20","s":"Kolaboro roadmap: 39 shipped"},{"id":"b9028d575478","time":"17:25","s":"Deposit protection finder, personal off-plan checklist, developer benchmark"},{"id":"73e58cc052b8","time":"17:25","s":"Kolaboro roadmap: 42 shipped"},{"id":"bba836a84fb9","time":"17:27","s":"Developer right of reply (/developers/reply/?id=: answer any finding with documents, free, reviewed within 10 working days) and a right-of-reply block on every project file"},{"id":"39ece922e14d","time":"17:27","s":"Kolaboro roadmap: 44 shipped"},{"id":"c628964abeed","time":"17:37","s":"Regulators data page, research and data licence, lawyer partner programme with application, private refund tracker; valid FAQ structured data on 15 pages (unescaped quotes fixed)"},{"id":"b29018cd3be2","time":"17:37","s":"Kolaboro roadmap: 48 shipped"},{"id":"8c6663a38f1d","time":"17:57","s":"Home page in German, French, Russian, Dutch, Arabic (right to left) and Chinese, with hreflang on every home and a language switcher"},{"id":"dd188c63f077","time":"17:57","s":"Kolaboro roadmap: 49 shipped"},{"id":"bedee5fa87e3","time":"18:14","s":"Shipping-log lines link to their proof; freshness warning on project files; small-sample marks on the transparency index; data collection policy page (robots.txt, what we keep, corrections and removal)"},{"id":"103b01345940","time":"18:15","s":"Kolaboro check: desk review result shows the share of projects in that market with contradicted claims and links to the market data, its official registers, deposit protection and payment plan tools"},{"id":"884f82979ef1","time":"18:15","s":"Confirmed score next to the public score on every case card; project files explain how claims were checked and why source links stay private until the verdict"},{"id":"f30cc205e381","time":"18:16","s":"Kolaboro project file: source policy wording states only what is true"},{"id":"a554b1ca43b9","time":"18:20","s":"Kolaboro investors: live traction in real numbers, market size from opened sources (DLD via DXBinteract, Registradores, INE, REIC, TurkStat) with a labelled bottom-up estimate, money ladder marked live or planned, why it is hard to copy, and what is not proven yet with the next test for each"},{"id":"dd881141b2b5","time":"18:32","s":"Kolaboro corrections: November accuracy check (485 claims in 50 random projects re-checked by separate agents: 450 supported, 10 corrected, 25 not checkable; 2.2% error rate among checkable claims) and the 10 corrections"},{"id":"1b98c5001afa","time":"18:58","s":"Kolaboro SEO and speed: server-rendered project and market pages at clean URLs (/p/ID/, /m/market/) with title, description, canonical, structured data and visible text; sitemap of every project and market; robots and llms.txt updated; versioned assets cached for a year; embeddable widgets allowed in iframes"},{"id":"a2ea42492cf0","time":"19:00","s":"Kolaboro project shell: one h1 per page"},{"id":"0b4d9f3cd772","time":"19:00","s":"Kolaboro market pages: one h1"},{"id":"94a159007647","time":"19:02","s":"Footer reorganised into Buyers, Data, Trust and Kolaboro on every page"},{"id":"99325e86f24f","time":"19:03","s":"Fix a syntax error in the market page renderer; small /api/open/summary for the ticker and live numbers so pages no longer download the full 1.1 MB database file"},{"id":"d79aef810690","time":"19:11","s":"Kolaboro security: admin photo viewer without HTML injection and only image data URLs or https; javascript: links blocked in admin; evidence file values escaped on /verify; open redirects on /index.html and trailing-slash paths closed; AI endpoints accept only same-origin JSON, rate limit by IPv6 /64, one retry, smaller uploads; desk review cache keyed with the query string; redirects re-checked hop by hop; private-IP style hostnames blocked; pilot key only in the header"},{"id":"a11356823b29","time":"19:16","s":"Home subtitle no longer limited to Bali (someone who lives where you buy checks the project is real before each payment) in all 8 languages; pricing and database pages in Spanish, German, French, Russian, Dutch, Arabic and Chinese with hreflang"},{"id":"20d9121203ce","time":"19:16","s":"Kolaboro corrections: second pass on unreadable claims (22 held, 1 corrected, 2 unchecked); error rate 11 of 483 (2.3%)"},{"id":"5e8f4ff05786","time":"19:17","s":"Map coordinates for new markets"},{"id":"832772fa8473","time":"19:20","s":"Market page assets no longer caught by the market route (dots excluded); broken /legal link fixed; empty-value dashes replaced (found by the full crawl)"},{"id":"80f8ceddcad0","time":"19:23","s":"Fallback counts 878 projects, 144 markets, 76 countries; Izmir on the map"},{"id":"6f73eb303435","time":"20:23","s":"Admin CRM tab, free accounts, saved projects and payment schedule in the portal"},{"id":"65bc97aa1d33","time":"20:36","s":"Admin inbox, command palette, live refresh, lead priority, bulk actions, templates; portal getting started, since last visit, compare saved, share with lawyer, print"},{"id":"04ce33603051","time":"20:53","s":"/thanks no longer claims the payment before it is confirmed"},{"id":"2e2c400d464f","time":"21:07","s":"Automatic PayPal payment confirmation (IPN + signed webhooks), admin view of payment events"},{"id":"5354c6f2811d","time":"21:15","s":"Password reset by email, self-test in admin, payment copy reflects automatic confirmation"},{"id":"e2c548241fd7","time":"21:20","s":"Portal map no longer initialises twice"},{"id":"f82f23a85e19","time":"21:59","s":"Mobile UX, portal puts payments and messages first on phones, compact admin header and scrollable tabs"},{"id":"24bc31133859","time":"22:04","s":"Kolaboro security: PayPal receiver check, email verification page, CSV injection, safe project links, admin view token in hash, no session recording on the portal"},{"id":"9076af1f0f8e","time":"22:08","s":"Mask portal, admin and shared pages in session recordings"},{"id":"fad2664d52a6","time":"22:09","s":"Explain email confirmation in the payment flow"},{"id":"cb5b2eebc645","time":"22:15","s":"Kolaboro analytics: funnel events (login, case_open, begin_checkout, case_share, schedule, project_save), Clarity tags without personal data, admin links to both properties"}]},{"date":"2026-11-02","ships":26,"data_updates":8,"rollbacks":0,"data_kinds":{"research agent data":6,"daily QA result":1,"satellite watch":1},"page":"/changelog/2026-11-02/","page_by":"auto","digest":"0fe32ce578b2619b","last_commit":"2026-11-02T23:52:53Z","redactions":1,"summary":{"lines":[{"text":"If you paste a link that is not a property project, the check now says so clearly instead of giving a score.","commits":["ac34af400904","3f53a6cd3410","2db05231d85c"]},{"text":"The buyer portal is now available in Spanish, including the language switch, dates, prompts and messages.","commits":["f5e3fef717c1"]},{"text":"The portal can read a payment plan with AI. You can also download your data and delete your account.","commits":["ea1e12813603"]},{"text":"Answers from our open data now carry a digital signature, and a public log lets anyone check that the data was not changed.","commits":["c9e2ed931b67","b9465d4dcff0","94979e082adb"]},{"text":"On phones, the portal has a bottom bar and a compact header, and findings can be swiped.","commits":["55a4c094a47a","6e20607603fc"]},{"text":"The home page was redesigned. The comparison of buying alone and buying with Kolaboro is now visual, in all 7 languages.","commits":["0a35804bacd1","dea809393814"]}],"method":"ai-checked","model":"claude-sonnet-5-5","checks":["6 lines, each mapped to 3/1/1/3/2/2 commit(s) of the day; numbers and privacy checked"],"written_at":"2026-11-05T06:48:38Z"},"commits":[{"id":"290cbde7ab8e","time":"03:51","s":"Private pages (admin, shared, reset, verify) opt out of analytics"},{"id":"6e20607603fc","time":"03:58","s":"Kolaboro UX: one gtag library feeds both GA properties, swipeable findings on phones, full-height ticker tap targets, ticker respects reduced motion"},{"id":"ea1e12813603","time":"04:17","s":"Public /status and /metrics, AI payment plan reader in the portal, download my data and delete my account"},{"id":"3dfa5197116e","time":"04:20","s":"Accessibility fixes found by axe-core (hidden ticker links, contrast, focusable findings row); status reads daily QA result"},{"id":"f5e3fef717c1","time":"04:23","s":"Buyer portal in Spanish (language switch, dates, prompts and toasts)"},{"id":"a098be47e2d9","time":"04:24","s":"Changelog shows 1-2 Nov shipments"},{"id":"18d42bfc9bcb","time":"04:38","s":"Restore the original /status, /metrics and /verify pages (overwritten by mistake) and merge the new sections into them; email confirmation moves to /confirm-email/"},{"id":"765353968610","time":"04:41","s":"Kolaboro changelog wording"},{"id":"94979e082adb","time":"04:53","s":"Dataset fingerprint and ETag on every open API answer, Merkle inclusion proofs for page fingerprints, change feed; field app sends a perceptual hash and a one-time capture code burned into each photo"},{"id":"b9465d4dcff0","time":"04:58","s":"Public log page, proof and dataset checks on /verify, open-source verification kit with test vectors, log on /status; ETag works through compression"},{"id":"8d822a473528","time":"04:59","s":"Kolaboro admin: audit trail on the Tests tab"},{"id":"bf73b7367273","time":"04:59","s":"Kolaboro changelog: verification engineering batch"},{"id":"c9e2ed931b67","time":"05:54","s":"Ed25519-signed open API answers and evidence receipts, public key at /.well-known/kolaboro-keys.json, signature check on /verify and in kolaboro-verify.js 1.1"},{"id":"1f54dba47a3e","time":"05:56","s":"Signed test vector, changelog entry for signed answers"},{"id":"b1e9fdf38512","time":"06:05","s":"Kolaboro changelog page: 1 and 2 November written up"},{"id":"56dcf0ef5ff9","time":"06:08","s":"Remove 'Launching in Bali'; the hero video link opens the founder video and product walkthrough on /demo"},{"id":"1a83b1abe176","time":"06:08","s":"Kolaboro demo: neutral video caption"},{"id":"34f3cecd6e96","time":"06:23","s":"Kolaboro demo: product video only"},{"id":"5d96028f6e51","time":"06:57","s":"Kolaboro home: wider hero subtitle, one text column, card aligned with the headline, cleaner stacking on tablet and phone"},{"id":"0a35804bacd1","time":"07:03","s":"Kolaboro home: remove the confusing money-at-risk slider; 'Buying alone vs with Kolaboro' rebuilt as a visual comparison (dark Kolaboro column on desktop, one card per question on phones), all 7 languages"},{"id":"dea809393814","time":"07:26","s":"Home redesign pass (trust strip, video, tools grid, pricing, FAQ card, next steps, nav), new portal screenshot, 404, changelog feed"},{"id":"55a4c094a47a","time":"07:30","s":"Portal mobile bottom bar and compact header"},{"id":"be7c402b0d54","time":"07:31","s":"Public log trust item without plural issue"},{"id":"ac34af400904","time":"23:45","s":"Desk review says clearly when a link is not a property project (e.g. [site]); portal pages get a note instead of the 6-point score"},{"id":"3f53a6cd3410","time":"23:49","s":"Kolaboro check: no share/follow-up boxes on non-property result; fix article"},{"id":"2db05231d85c","time":"23:52","s":"Kolaboro check: keep capitalised nationality in not-a-property message"}]},{"date":"2026-11-03","ships":124,"data_updates":84,"rollbacks":0,"data_kinds":{"research agent data":4,"restore drill":1,"verifiers":1,"render reuse":10,"security scan":1,"satellite watch":1,"Parquet export":2,"deploy guard record":40,"daily QA result":1,"user journey":3,"satellite optical progress":2,"chaos drill":2,"accessibility audit":4,"developer intelligence":2,"price index":1,"company graph":2,"site manifest and build record":2,"Lighthouse":2,"AI benchmark haiku":1,"visual diff":1,"AI benchmark sonnet":1},"page":"/changelog/2026-11-03/","page_by":"human","digest":"fc843b014d327b87","last_commit":"2026-11-03T23:41:45Z","redactions":0,"summary":{"lines":[{"text":"Project pages now show what would change a project's score, how old its website is, and whether its promises have drifted over time.","commits":["3af7e486ef31"]},{"text":"A new hazards page lets you pin a plot and read flood, earthquake, tsunami and volcano information live, with the source shown for each figure.","commits":["d564a79ba58a","f6af8331b29d"]},{"text":"Satellite pages now show radar and monthly photo changes for an area, plus milestone evidence, and they fit phone screens.","commits":["6af2b83b5b61","026d8623e18c","eaead514f57c"]},{"text":"New buyer tools run in your browser: PDF forensics, a payment account check, a contract check and an image check for content credentials.","commits":["f89930e6cd34","857aef98f946","14c0ec97b1d6"]},{"text":"Advertised prices are now compared with registered sales, and Dubai prices per square metre are checked against official area data.","commits":["34087139fe23","83a30dc3add5"]},{"text":"Desk review of project websites got better at reading script-built pages and now says honestly when a site blocks the reader.","commits":["b18354194a67","adaabd2d7671"]}],"method":"ai-checked","model":"claude-sonnet-5-5","checks":["6 lines, each mapped to 1/2/3/3/2/2 commit(s) of the day; numbers and privacy checked"],"written_at":"2026-11-05T06:48:43Z"},"commits":[{"id":"a6a3e3b7016d","time":"09:16","s":"Prompt-injection defence for desk review, daily AI evals, signed log checkpoint with inclusion/consistency proofs, Rekor witness, browser error beacon, CSP report-only, SRI, security.txt"},{"id":"9499e9457fe7","time":"09:19","s":"Rpc accepts empty 204 answers; one evidence snippet per injection"},{"id":"2e4aec6291bb","time":"09:21","s":"Passkey-signed site photos (agent app, receipt check, verifier); verifier 1.2 adds photo signatures"},{"id":"99a81b67ae20","time":"09:27","s":"/engineering (AI safety, daily evals, public log, signed photos, reliability), log page checkpoint + consistency check + Rekor links, status uptime/evals/restore, admin browser errors, contrast fixes"},{"id":"e8c2b31fc30c","time":"09:29","s":"Python and Go verifiers (stdlib only), test vectors for checkpoint, inclusion and consistency"},{"id":"c1ed254c50ae","time":"09:33","s":"Time-travel API (project as published on a past day, snapshot checked against the public log); API docs for new endpoints"},{"id":"d45c750703cb","time":"09:34","s":"Changelog for 3 Nov"},{"id":"43030206b842","time":"09:55","s":"Bitcoin proof checked in the browser, founder passkey co-signature, two-model consensus, code-keyed evals, AI spend breaker, freshness SLO, honeytokens, registered case-file PDFs, OIDC-authenticated outside probe, engineering pages"},{"id":"6af2b83b5b61","time":"10:06","s":"Satellite page shows Sentinel-1 radar backscatter change per area"},{"id":"26cdfc20e1f9","time":"10:48","s":"Evals keyed on code and fixtures; keep full answers in eval results"},{"id":"a1ab9b2fbb4f","time":"10:50","s":"Desk review repairs malformed model JSON and falls back to the second reader; eval summary check v2 targets the injected claims"},{"id":"a4fe520e87ae","time":"10:54","s":"Changelog, second batch of 3 Nov"},{"id":"eaead514f57c","time":"10:55","s":"Satellite page fits phones; friendlier pending Bitcoin message"},{"id":"e5db475d36ca","time":"12:07","s":"Copied-render detector on engineering and changelog"},{"id":"24b46d045fb2","time":"12:17","s":"Feature-module router (kbx) for parallel work"},{"id":"43fefaa1fa5c","time":"12:33","s":"Router slots g-m for the second feature batch"},{"id":"3af7e486ef31","time":"12:35","s":"Project page shows what would change the score, website age and promise drift"},{"id":"0ab0bbc2ea45","time":"12:38","s":"Live desk review steps, quoted claims, red-team playground"},{"id":"d580a9b9db44","time":"12:40","s":"Live activity feed (SSE, signed snapshots) and signed search index endpoints"},{"id":"455a2785d98a","time":"12:40","s":"Home live activity strip, command palette, speculation rules, in-browser signature badges"},{"id":"a50c21ac96ad","time":"12:40","s":"Site.js cache bust on the red-team page"},{"id":"3b90d28a0167","time":"12:40","s":"Public MCP server at /mcp and signed Parquet manifest"},{"id":"16a5e93093a6","time":"12:41","s":"Project page notes when a domain was re-registered after older certificates"},{"id":"07bdd7fe6c3e","time":"12:42","s":"Eval checks without a field no longer crash the run"},{"id":"1a5b54fcf222","time":"12:44","s":"Palette typo matching, live strip connects at once on phones"},{"id":"f326908e3a23","time":"12:46","s":"Remove hidden elements nested inside visible ones; eval case i9"},{"id":"02dcd7ace50c","time":"12:47","s":"Reliability module (web vitals beacon, chaos drill endpoint), status sections, a11y fixes"},{"id":"112d22627035","time":"12:48","s":"Bump site.css, vitals.js, status reliability.js versions"},{"id":"abbc26471cfa","time":"12:48","s":"Header search as an icon button so nav links stay on one line; live strip one row on desktop"},{"id":"2e885263b2d9","time":"12:50","s":"Trust center with live evidence, investor dossier, public deploy smoke checks"},{"id":"a775a7937771","time":"12:51","s":"Desk review shows when the first model gave no usable answer; JSON escaping rule for quotes"},{"id":"24fcfeeb9191","time":"12:52","s":"Official SDKs (TS, Python) with signature checks, self-serve API keys and metering, Ask Kolaboro with checked citations"},{"id":"0450582d0407","time":"12:52","s":"Developer reply portal with DNS ownership proof and encrypted deal room"},{"id":"f89930e6cd34","time":"12:53","s":"In-browser buyer tools: PDF forensics, render reuse image check, payment account check, tools index"},{"id":"5882d0953ffa","time":"12:54","s":"Portal overlay in the extension (hash-prefix lookup), Telegram forward-and-check, web push alerts"},{"id":"c394a79a31d2","time":"12:55","s":"Alerts and forward pages use the current site assets"},{"id":"37d28ced855e","time":"12:55","s":"Post-deploy guard (smoke checks, automatic rollback, public record), TLS measured from outside"},{"id":"0c2bc1f80873","time":"12:56","s":"/sql/ (DuckDB-WASM over signed Parquet) and /docs/mcp/"},{"id":"cc3d1782c064","time":"12:57","s":"Kolaboro room: no auto entry when opening a shared link, safe import merge, reject plaintext first"},{"id":"45a62595c091","time":"12:58","s":"SDK and API keys pages pick up current site.css and site.js versions"},{"id":"9e501fbfae67","time":"12:58","s":"Ask Kolaboro test questions and live results"},{"id":"fdda8e20288e","time":"12:59","s":"Repair model JSON with unescaped quote marks copied from pages"},{"id":"026d8623e18c","time":"13:03","s":"Satellite on demand (/satellite/plot/), milestone evidence (/milestones/), monthly optical section on /satellite/"},{"id":"5acd15a9ce4c","time":"13:03","s":"SDK calls fetch unbound (browsers threw Illegal invocation); Ask page ids no longer clash with the global ask script"},{"id":"1e18d6978e83","time":"13:04","s":"Kolaboro tools: opt the in-browser file tools out of session recording, mask result areas"},{"id":"22317aa1e898","time":"13:04","s":"Alerts accept Chromium's push host, deterministic lookup table, self-test time"},{"id":"3b6b97c4c37a","time":"13:04","s":"Deploy guard writes trees without fetching every blob"},{"id":"2811e4e37d81","time":"13:05","s":"Only quotes overlapping AI-directed text are removed; red-team baseline runs in parallel"},{"id":"3233db0b00f7","time":"13:07","s":"Live State of Off-Plan report computed in the browser from the Parquet file, with code and SQL under every chart; property test results"},{"id":"eddf5f599bc0","time":"13:11","s":"Kolaboro room: move the key out of the address bar on arrival, skip injected analytics on /room/"},{"id":"40e1d843cfff","time":"13:11","s":"Extension page coverage line keeps its wording"},{"id":"f61cec3d82a1","time":"13:12","s":"Project page signed-record badge, watch link, queue state for website age"},{"id":"88192a35ff5e","time":"13:12","s":"Kolaboro tools: mask the tool sections from session analytics instead of stubbing the loader (no console error)"},{"id":"523df4010865","time":"13:12","s":"Load real-user web vitals on half of page views (site.js)"},{"id":"1f6893da03a2","time":"13:12","s":"SDK page reads a cache-busted manifest so hashes match the live files"},{"id":"5b394720dec8","time":"13:14","s":"Deploy guard drill judges only the injected check"},{"id":"c33f957b0ba6","time":"13:15","s":"Kolaboro room: mask the room for session-recording tools"},{"id":"3923e0458900","time":"13:16","s":"Deploy guard tolerates the live commit moving during a run"},{"id":"34087139fe23","time":"13:16","s":"Advertised prices vs registered sales, risk patterns model, automated register checks"},{"id":"72d6ce9abd95","time":"13:18","s":"Export worker key helper for feature modules"},{"id":"62ee62d01d40","time":"13:19","s":"Deploy guard drill compares file versions correctly when a file was added"},{"id":"eb27b20a61ca","time":"13:19","s":"Live report checks the file hash the server signed"},{"id":"7ea629d1d3d7","time":"13:21","s":"Kolaboro tools: keep the Clarity queue guard so the injected second tag does not throw"},{"id":"734ded8a3ce3","time":"13:22","s":"Project page shows moderated developer replies when published"},{"id":"ce57f0f1e420","time":"13:23","s":"Kolaboro satellite: year-on-year optical headline (seasons cancel), cache-safe data fetch on milestones"},{"id":"74c7bb55d0b1","time":"13:24","s":"Kolaboro image check: daily cache key for the hash index (the edge cached the plain URL)"},{"id":"16d084f5164d","time":"13:24","s":"Accessible names include the visible label (language switcher, video card, upload area)"},{"id":"ff2e3eab6266","time":"13:24","s":"Trust center reads the deploy record past an edge-cached 404"},{"id":"83a30dc3add5","time":"13:25","s":"Dubai price per m2 vs DLD area, payment-plan feature, automated Companies House checks"},{"id":"c93cf76973c8","time":"13:26","s":"One rounding rule for the transparency index in JS, Python and the API"},{"id":"81ffab732924","time":"13:28","s":"Kolaboro status: fetch reliability data with a 5-minute cache key"},{"id":"0c52d1ba340d","time":"13:35","s":"Readable text on the technology status cards (contrast)"},{"id":"703da60829ad","time":"13:35","s":"Kolaboro satellite: monthly stats show scenes read"},{"id":"360ac56f0e71","time":"13:37","s":"Market truth pages, wide tables scroll on phones"},{"id":"bb6378b6a862","time":"13:48","s":"Promise drift timeline keeps change-log entries only for days before daily copies"},{"id":"36b72eb2ab6d","time":"13:58","s":"Changelog afternoon of 3 Nov, engineering cards, llms.txt, sitemap, register and SDK links, code block focus"},{"id":"97e53bb6f34b","time":"13:58","s":"Kolaboro footer: SQL in your browser, Buyer tools, Ask Kolaboro, Trust center"},{"id":"75a4b5b020a7","time":"14:00","s":"Add satellite monthly progress, plot view and milestones to changelog, engineering and sitemap"},{"id":"c8c0ca38330b","time":"14:12","s":"Kolaboro changelog: let the long API path wrap on phones"},{"id":"19b9924c14f4","time":"20:50","s":"15 s deadline on developer page fetch, 60-120 s model-aware deadline on anthropic(), slow-model chaos scenario"},{"id":"c7bf9224d1cd","time":"20:52","s":"Nonce on scripts injected after kbHeaders (/admin, /check, ssr JSON-LD), private cache for /p/ /m/, 60 s cache for /data/*.json"},{"id":"adaabd2d7671","time":"20:55","s":"Kolaboro desk review: read React-streamed content, follow the site's own property page, never call a thin page 'not property'"},{"id":"7186f3536427","time":"21:00","s":"Remove all 27 inline event handlers (data-nosubmit, data-print, page listeners, sat.js onerror by property), a11y fixes on portal, report sample and satellite, new footer links on satellite, satellite/plot, milestones"},{"id":"545f16769f46","time":"21:00","s":"Kolaboro desk review: lease length keeps up to 80 characters (was cut mid-word)"},{"id":"fb07fa35bca6","time":"21:04","s":"Property tests 22 of 22 (transparency index JS and Python now agree)"},{"id":"8b45454748f6","time":"21:09","s":"One-page summary of what shipped on 3 November 2026"},{"id":"b18354194a67","time":"21:12","s":"Kolaboro desk review: find where a site sells, read script-built pages, say honestly when a site blocks our reader"},{"id":"58360b57f403","time":"21:23","s":"Kolaboro.com portal: contrast of the medium attention badge and the area check result"},{"id":"f6d410f24a66","time":"21:25","s":"Day page status tags use their own class (global .tag is absolute and overflowed on mobile)"},{"id":"9468da1e9027","time":"21:27","s":"Kolaboro desk review: repair the small model's missing commas (it fell back to the second model on 4 of 12 live pages), never follow the site's home link, show how little was read"},{"id":"4b539b807ff3","time":"21:37","s":"Explore step shown before signing, cases search example that returns results"},{"id":"c84863702b80","time":"21:39","s":"Kolaboro.com portal: darker secondary grey in case file (WCAG AA contrast)"},{"id":"a842625f970a","time":"22:09","s":"Kolaboro desk review: on a tie, review the page where the site sells; JSON failures name what the model wrote"},{"id":"1be8c9678868","time":"22:09","s":"Router slots n-t for the third feature batch"},{"id":"252c24e3f485","time":"22:10","s":"Email_off around the 20 pages that show an email, so Cloudflare no longer injects its email-decode script (it carries no CSP nonce)"},{"id":"a07b62baf91c","time":"22:19","s":"/index/prices/ off-plan asking-price index page, recomputes every chain step in the browser"},{"id":"14c0ec97b1d6","time":"22:25","s":"Kolaboro.com image check: verify C2PA Content Credentials in the browser (official c2pa-web, pinned wasm hash, C2PA trust lists) and list EXIF/XMP/PNG signals of generative tools"},{"id":"f6af8331b29d","time":"22:26","s":"Kolaboro hazards: live point lookup from open sources (Copernicus DEM, Aqueduct floods, USGS, NOAA tsunami, GVP volcanoes, OSM coastline) and zoning service probe"},{"id":"afb62f6d9aee","time":"22:31","s":"Company graph page, exact-name court search and mystery shopper method (block q)"},{"id":"f29578322036","time":"22:33","s":"Provenance for numbers (k/prov.js + registry k/prov.json), Verify this page (k/pagecheck.js, signed manifest at /api/x/n/manifest), worker build record (/api/x/n/builds), /verify#page #builds #numbers"},{"id":"f4fea9da674d","time":"22:35","s":"Log witnesses, AI benchmark, bug bounty, SLOs with error budgets (block O)"},{"id":"a56672cfc1a6","time":"22:36","s":"Email_off on the new benchmark and witness pages (Cloudflare email script carries no CSP nonce)"},{"id":"d564a79ba58a","time":"22:36","s":"Kolaboro.com /hazards/: pin a plot, read six open hazard sources live with source, query and limits per figure; zoning section with live check of the official Indonesian services and how to check by hand"},{"id":"2520f756a053","time":"22:39","s":"Kolaboro hazards: zoning probe also checks the ATR/BPN GeoServer WMS endpoints and reports robots.txt lines"},{"id":"86a26c54191f","time":"22:40","s":"Kolaboro hazards: shorter Overpass timeout before trying the mirror"},{"id":"857aef98f946","time":"22:40","s":"Contract check with on-device AI, law notes with official quotes, permit QR check"},{"id":"8556177eb403","time":"22:41","s":"Signed buyer reports, offline site-visit app, signed partner webhooks, Lighthouse on /status"},{"id":"c05305959a9d","time":"22:42","s":"/visual/ website change watch (geometry only, no screenshots) and /api/x/r/ for visual diffs and the price index"},{"id":"82a1a341092b","time":"22:46","s":"First company graph, 17 UK projects matched on Companies House (anonymised)"},{"id":"8ed35584a6e6","time":"22:48","s":"Kolaboro hazards: ask both Overpass servers at once for the coastline, first valid answer wins"},{"id":"385ea6263477","time":"22:48","s":"Kolaboro contract and permit checks: mask tool content from site analytics, honest network note"},{"id":"2ee79356101d","time":"22:50","s":"Kolaboro.com provenance: panel status classes no longer collide with site.css .ok; manifest 'starting' state answers 200 (no console error)"},{"id":"7e4b0847c987","time":"22:51","s":"Kolaboro visit: register the service worker under a versioned URL (an edge-cached 404 for the bare path)"},{"id":"7618bd94b3bc","time":"22:51","s":"Kolaboro webhooks: Python verifier sends a user-agent when fetching the public keys (bare urllib is refused at the edge)"},{"id":"cdb236fb7d1f","time":"22:56","s":"Kolaboro contract and permit checks: standard analytics shim so the injected Clarity tag does not throw (content stays masked)"},{"id":"f7bb8fae9afb","time":"22:58","s":"Kolaboro status: fetch Lighthouse results with an hourly query so an edge-cached 404 cannot hide them"},{"id":"5a1533fbef4b","time":"22:58","s":"Kolaboro /graph/: hourly cache key for the graph file (the edge kept a 404 from before it existed)"},{"id":"b189dee0d222","time":"23:02","s":"Kolaboro contract check: name the Hugging Face CDN in the network note"},{"id":"6bcf4f50014b","time":"23:04","s":"Kolaboro /graph/: say that network companies are counted per project"},{"id":"623f9baa0f29","time":"23:05","s":"Mask session recording on pages that show keys, logins, agent data, developer replies and signed results"},{"id":"a5fe408477fa","time":"23:05","s":"Kolaboro home: number provenance and Verify this page"},{"id":"3d31213af01c","time":"23:21","s":"Kolaboro.com /visual/: count sites still without a baseline after the run"},{"id":"b437a78b1ac7","time":"23:37","s":"Heading order fixed site-wide, metric-matched font fallback"},{"id":"14f098079210","time":"23:37","s":"Kolaboro /p/: no layout shift on load (CLS 1.5 to 0)"}]},{"date":"2026-11-04","ships":67,"data_updates":91,"rollbacks":0,"data_kinds":{"deploy guard record":45,"natural hazards":4,"user journey":4,"research agent data":3,"site manifest and build record":5,"market truth":1,"promise tracker":8,"delay index and on-time odds":4,"night lights":1,"stalled-site check":1,"global company graph (GLEIF)":2,"accessibility audit":1,"insolvency watch":1,"Parquet export":1,"price index":1,"developer intelligence":2,"Lighthouse":1,"chaos drill":1,"daily QA result":1,"company graph":1,"verifiers":1,"extension lookup table":1,"visual diff":1},"page":"/changelog/2026-11-04/","page_by":"human","digest":"6ce6c3b22cd6b9ba","last_commit":"2026-11-04T23:44:52Z","redactions":0,"summary":{"lines":[{"text":"You can now check a developer for insolvency records and look up whether a property agent is licensed.","commits":["b0c2f5eae68d"]},{"text":"Hazard checks now show flood scenarios for 2030 and 2050, plus protected land and mangroves within 1 km of a project.","commits":["2574de51ff10"]},{"text":"New delivery-delay page and on-time odds lookup show how likely a project is to hand over on schedule.","commits":["6b5dfd716a2b"]},{"text":"A promise tracker, plain-language search alerts and a list of questions to ask the developer are now available.","commits":["fc5f631e494a"]},{"text":"A new satellite page uses night lights to spot ghost projects, where nothing visibly changes on site.","commits":["e522b02d77a0"]},{"text":"The check, scoring, checklist, about and cases pages are now available in Russian, Chinese, German, French, Arabic and Dutch.","commits":["31d3cd9dd5f7"]}],"method":"ai-checked","model":"claude-sonnet-5-5","checks":["6 lines, each mapped to 1/1/1/1/1/1 commit(s) of the day; numbers and privacy checked"],"written_at":"2026-11-05T06:50:59Z"},"commits":[{"id":"3797618d3b32","time":"00:02","s":"Kolaboro footer: company graph, price index, website changes, AI benchmark, log witnesses; Verify this page (prov.js) on every page with the shared footer"},{"id":"7900a5b74818","time":"00:02","s":"Sitemap and llms.txt list the batch 3 pages"},{"id":"fade9564773e","time":"00:02","s":"Tools page lists the site visit app and buyer reports; project page links to more on the project (company graph only when covered)"},{"id":"6bf94beabca1","time":"00:02","s":"Changelog for the night of 3 to 4 Nov (32 items), one-page summary, engineering cards"},{"id":"812f7f4b7eb5","time":"00:07","s":"Kolaboro changelog: keep tracked projects anonymous, mark features live after the 3 Nov database step, reserve space for the live feed"},{"id":"6b055d6c9f9c","time":"01:55","s":"Natural hazards and zoning in changelog, day page, engineering, footer, sitemap, llms.txt and API docs"},{"id":"022d1d14117c","time":"06:02","s":"Self-hosted Leaflet marker icons on the client portal map (were 404), working example link on /visual, no em dashes on /technology"},{"id":"03a4c8662c47","time":"06:11","s":"Kolaboro hazards: coastline card no longer fails when OpenStreetMap servers are down"},{"id":"02841099da1e","time":"06:16","s":"Kolaboro changelog: 4 Nov morning fixes"},{"id":"2bb6ae093700","time":"06:49","s":"One Clarity tag per page (wqn50nb6kp via Zaraz); remove the duplicate portfolio tag z4eqcmaic7 that crashed it (sequence/unshift errors)"},{"id":"61b177e3e8de","time":"06:59","s":"Clarity queue guard on the 32 pages that lacked it (fixes 'unshift' error from the Zaraz Clarity tag on /visit and /portal)"},{"id":"e9785d6e4369","time":"07:08","s":"Kolaboro changelog: analytics fix and zero script errors"},{"id":"bdca1b032857","time":"07:19","s":"Link the public open-source repo kolaboro-open from verify, security, engineering, llms.txt and the changelog"},{"id":"5d9abf1a62b0","time":"07:41","s":"Kolaboro changelog: buyer reports, webhooks and witness registration open after migration 11"},{"id":"fe1e88400d90","time":"08:27","s":"Kolaboro worker: register batch 4 modules u to z (stubs answering 404 until each block ships)"},{"id":"6b5dfd716a2b","time":"08:44","s":"Delivery-delay index page, on-time odds lookup, monthly press release template, /api/x/v endpoints"},{"id":"85a4ea88ed3c","time":"08:47","s":"Court-ready evidence bundle (built in the browser) and signed risk feed for banks and insurers"},{"id":"d175cc63f592","time":"08:49","s":"Translated cases pages, filter selects never wider than the screen"},{"id":"31d3cd9dd5f7","time":"08:49","s":"Check, how-we-score, checklist, about and cases in ru, zh, de, fr, ar, nl (30 pages), localized links and translation notice on the existing translated pages"},{"id":"15e9f4cf79a8","time":"08:52","s":"Kolaboro tools: price below build cost, currency risk history from ECB rates, late handover contract and law"},{"id":"e1a20cedd043","time":"08:53","s":"Kolaboro worker W: insolvency lookup, GLEIF graph and agent register endpoints under /api/x/w/"},{"id":"fc5f631e494a","time":"08:53","s":"Promise tracker, plain-language search alerts, questions for the developer (block Y)"},{"id":"2574de51ff10","time":"08:57","s":"Kolaboro.com hazards: 2030 and 2050 flood scenarios, protected land and mangroves within 1 km (block U)"},{"id":"b0c2f5eae68d","time":"09:01","s":"Insolvency check (Gazette UK live, BORME Spain index), is this agent licensed?, global company graph page (GLEIF)"},{"id":"007a3d629437","time":"09:06","s":"Delay index page fetches its data with a daily cache key"},{"id":"46bf9812336e","time":"09:06","s":"Kolaboro agent check: Dubai Pulse API path behind owner-supplied keys, key status in the register table"},{"id":"1bdf029981fc","time":"09:07","s":"Kolaboro risk feed 1.1.0: on_time from the newly published /data/on-time.json (status, handover months, estimate with interval)"},{"id":"e522b02d77a0","time":"09:08","s":"/satellite/night/ ghost projects from space (night lights, visible change on site); protected card headline counts mangroves (block U)"},{"id":"5a1bea79a686","time":"09:08","s":"Kolaboro currency risk: read today's rate from our ECB relay first (covers AED), Frankfurter only as fallback; fixes a console error for AED pairs"},{"id":"15aa256b4314","time":"09:13","s":"Batch 4 first eight (delay index, on-time odds, press release, build cost, currency history, late handover, evidence bundle, partner risk feed) in changelog, 4 Nov page, engineering, footer, sitemap, llms.txt"},{"id":"3ab2c14d4ea8","time":"09:16","s":"Kolaboro.com /satellite/night/: show the real change-score distribution and the urban shadow caveat (block U)"},{"id":"534a6e46c93a","time":"09:17","s":"Language switcher and hreflang on the English check, how-we-score, checklist, about and cases pages; six languages in changelog, 4 Nov page, sitemap, llms.txt"},{"id":"ad12634678df","time":"09:19","s":"Kolaboro global graph: why no parent is reported, hand-checked precision (20 of 20), market filter"},{"id":"5327a18ec07c","time":"09:21","s":"Climate 2030/2050, protected land, night lights and stalled sites in changelog, 4 Nov page, engineering, footer, satellite, hazards copy, API docs, sitemap, llms.txt"},{"id":"46bca3dbc0d5","time":"09:22","s":"Kolaboro project page: on-time odds and evidence bundle links, and the Sentinel-2 / night-light reading when one exists"},{"id":"860bc34723f9","time":"09:23","s":"Kolaboro.com promises page: show when the research record and the page copy give different dates"},{"id":"42d9a85495af","time":"09:23","s":"Kolaboro global graph: read data through /api/x/w/graph-global so the page shows a clean starting state before the first run"},{"id":"5ed2e608fe18","time":"09:32","s":"Promise tracker, search alerts and ask-the-developer in changelog, 4 Nov page, engineering, footer, project page, sitemap, llms.txt"},{"id":"431f0751ccb6","time":"10:22","s":"Kolaboro insolvency lookup: longer Gazette timeout, retry with the full legal name when a short name floods the results, never cache a partial answer"},{"id":"f7367a18d0ee","time":"10:27","s":"Global company graph, insolvency check and agent licence check in changelog, 4 Nov page, engineering, footer, /graph/, sitemap, llms.txt"},{"id":"580edd79e2ab","time":"10:28","s":"Kolaboro changelog: 115 new projects in 35 countries, 1,011 tracked"},{"id":"77ba0971b972","time":"11:48","s":"Kolaboro changelog: search alerts and developer-answer reports have their tables (migration 12)"},{"id":"ccc6988f09e2","time":"12:59","s":"Kolaboro.com UX-D: inline per-field form errors, busy states, readable network errors on account and form pages"},{"id":"d6e9c8bf406f","time":"13:01","s":"Kolaboro.com UX-D: /legal/ hub page (was 404 from the sign-up form and breadcrumbs); sign-up links terms and privacy directly"},{"id":"2ffcfe89f939","time":"13:07","s":"Kolaboro.com UX sweep A: language switcher on every page, phone footer, follow forms, check request email, cases and compare fixes"},{"id":"3d80369cb9c8","time":"13:07","s":"Bump asset versions for UX sweep A"},{"id":"baf4a0dc7dd8","time":"13:08","s":"Kolaboro i18n: Spanish check, how-we-score, checklist, about and cases; every language page links within its language, translated footers, search and number labels, nav fits at laptop widths"},{"id":"258c1c7001c9","time":"13:09","s":"Kolaboro.com UX sweep A: pricing price contrast and spacing, checklist clear button, header fits at laptop widths"},{"id":"76aad72f85b1","time":"13:16","s":"Kolaboro UX-C: tools index lists all tools, sample report verify fixed, phone tap targets and tables, build-cost and insolvency wording, SQL examples run in one tap"},{"id":"17d415b9c1f5","time":"13:17","s":"Keep two mailto links out of Cloudflare email protection (404 without JS), /legal/ in sitemap"},{"id":"fefd7a63033f","time":"13:18","s":"Kolaboro.com UX sweep A: Indonesian lead form labels and errors, cookie notice as region with 40px Privacy link"},{"id":"1baf5d3cd05a","time":"13:19","s":"Kolaboro worker: claude() tries the next model when an answer has no JSON (token budget used up) instead of failing; Ask the database gets a larger budget"},{"id":"af12a8169851","time":"13:19","s":"Kolaboro /follow: an old ?id= link without a token opens the project page with its follow form instead of 'Link not valid'"},{"id":"8c2ae018557d","time":"13:22","s":"Kolaboro UX-C: payment risk score says when the timeline dates are inconsistent instead of silently replacing them"},{"id":"dcb99de7d616","time":"13:23","s":"Kolaboro i18n: resync translations with the latest English pages (asset versions, checklist clear button, cases title)"},{"id":"180c4846ea11","time":"13:23","s":"Kolaboro i18n: case cards, follow forms, stats and agent questions shown in the page language on /xx/cases; English check and cases updates carried into all translations"},{"id":"bf90eabb73ab","time":"13:23","s":"Kolaboro i18n: Spanish home rebuilt as a full translation of the current English home (lead form, live strip, findings, tools, pricing, FAQ)"},{"id":"d74354a753b6","time":"13:26","s":"Kolaboro UX-C: larger Check in Bitcoin buttons on the public log and verify summary on phones"},{"id":"847c9b215dca","time":"13:30","s":"Kolaboro i18n: hero check box keeps translated pages in their language, Arabic forms no longer widen the page (honeypot field placed for right-to-left), site.js version bump"},{"id":"ae656a6ee5ff","time":"13:32","s":"Kolaboro i18n: check page name-search hint and placeholder in the page language"},{"id":"7e95e4f19aa5","time":"13:36","s":"Newsletter box shows a message when the email is missing (it threw an error before, in every language); stats labels on /xx/cases scoped so desk review text stays consistent"},{"id":"18c7697bfc02","time":"13:49","s":"Kolaboro i18n: Spanish buttons lead to the Spanish home form; translation data on home, pricing and database pages de-duplicated so the newest wording applies"},{"id":"96740fe5baa7","time":"13:53","s":"Insolvency API echoes the request's own name; on phones the sticky button hides while typing and pages keep room above it; Verify this page is a 40 px tap target"},{"id":"fba9f2bdf8bd","time":"14:01","s":"Kolaboro i18n: tidy blank lines in the Spanish home head"},{"id":"a1e91a354705","time":"14:02","s":"Spanish alternates on the English check, how-we-score, checklist, about and cases pages; five /es/ pages in the sitemap; honeypot field safe on every right-to-left page"},{"id":"6ba93e994249","time":"14:04","s":"Kolaboro changelog: 4 Nov afternoon UX sweep"},{"id":"7bcfc578b925","time":"15:12","s":"Kolaboro CSP prep: keep two email links out of Cloudflare email obfuscation (its decoder script carries no nonce), allow the Frankfurter fallback in connect-src"}]},{"date":"2026-11-05","ships":29,"data_updates":42,"rollbacks":1,"data_kinds":{"research agent data":1,"user journey":1,"discovery data (market points, similar projects)":2,"deploy guard record":13,"weekly digest and change heatmap":4,"shipping log":4,"quality run":4,"data catalog":4,"promise tracker":1,"live findings":4,"render index":1,"satellite optical progress":1,"render reuse":1,"satellite watch":1},"page":null,"page_by":null,"digest":"4ddeb88459ac5719","last_commit":"2026-11-05T08:09:23Z","redactions":0,"summary":{"lines":[{"text":"Image-index.json and the technology render check no longer show developer domains or project names (anonymity rule); matches link to the image check tool's anonymous ids","commits":["101f70794c70"]},{"text":"Hold back sw.js and /saved/ (net zero files while the Pages file limit is fixed); Save offline button appears only once /sw.js is published","commits":["f17c99a9de94"]},{"text":"Kolaboro.com X6: Pages file budget, digest is one page (data inside, JSON and RSS from the worker), explain script inlined, 7 files removed","commits":["f376f02b6f35"]},{"text":"Kolaboro.com W6: file limit, inline the quality page script and read one merged /data/quality.json (net -1 file now, job removes 10 more)","commits":["669ad818e3b7"]},{"text":"Hourly findings on every project page, in the home activity strip heading, footer, engineering, changelog, sitemap, llms.txt","commits":["5f16b9231fc8"]},{"text":"/shipping/ log (calendar, streaks, day summaries, engineering numbers), ship badge API, roadmap items linked to live pages","commits":["a29a8ca4d9b7"]}],"method":"so-far"},"commits":[{"id":"be649ccc9ab8","time":"06:28","s":"Kolaboro worker: register batch 6 modules (ship, data, disc, qa, ins) as 404 stubs"},{"id":"a29a8ca4d9b7","time":"06:47","s":"/shipping/ log (calendar, streaks, day summaries, engineering numbers), ship badge API, roadmap items linked to live pages"},{"id":"94f0ec82a4af","time":"06:48","s":"Score explainer, project-scoped questions, market indices (block X6)"},{"id":"4b8430775da7","time":"06:50","s":"Kolaboro.com W6: quality pages (visual tests, page weight, real-user speed, accessibility statement) and /api/x/qa"},{"id":"2a1fcb62f6cd","time":"06:52","s":"World map, similar projects, market comparison, project timeline, display currency (block U6)"},{"id":"7d673556228f","time":"06:57","s":"Kolaboro.com T6: open data catalog (/data/), data contracts, freshness API, OpenAPI 3.1 + explorer, llms-full.txt"},{"id":"314e2b384c86","time":"07:06","s":"Dark mode (system setting by default, header toggle), keyboard shortcuts (? list, g h, g c, g k, /), share sheet on project pages and tool results, save for offline reading with /saved/, printable one page project scorecard, print styles site-wide"},{"id":"5c50b4a26663","time":"07:08","s":"/explain/ page on the current shell (dark-mode ready) (block X6)"},{"id":"ebf029733645","time":"07:17","s":"Live findings page, hourly findings in the home activity feed"},{"id":"0cc842672cce","time":"07:18","s":"Pack the 648 coastline tiles into 36 column files (-612 files) so the shared Pages deploy fits under 20,000 files again"},{"id":"d930aabb2c18","time":"07:18","s":"Findings page inlines its CSS and JS (no extra files while Pages is over its file limit)"},{"id":"f17c99a9de94","time":"07:18","s":"Hold back sw.js and /saved/ (net zero files while the Pages file limit is fixed); Save offline button appears only once /sw.js is published"},{"id":"669ad818e3b7","time":"07:19","s":"Kolaboro.com W6: file limit, inline the quality page script and read one merged /data/quality.json (net -1 file now, job removes 10 more)"},{"id":"fd6d24ea430d","time":"07:20","s":"Kolaboro.com U6: inline page scripts and styles, read market points from similar.json (4 fewer files, Pages file limit)"},{"id":"77e90178fd44","time":"07:22","s":"Restore offline reading (sw.js and /saved/) now that the Pages deploy is under the file limit"},{"id":"76ca11768dec","time":"07:22","s":"Activity feed dates the hourly check summary at the end of its run"},{"id":"398a83288fe6","time":"07:22","s":"Activity feed counts all facts rejected by the quote check"},{"id":"f376f02b6f35","time":"07:23","s":"Kolaboro.com X6: Pages file budget, digest is one page (data inside, JSON and RSS from the worker), explain script inlined, 7 files removed"},{"id":"00af8b3c3d3f","time":"07:26","s":"Kolaboro.com X6: market indices cards no longer use the global .ok class (they were hidden)"},{"id":"101f70794c70","time":"07:27","s":"Image-index.json and the technology render check no longer show developer domains or project names (anonymity rule); matches link to the image check tool's anonymous ids"},{"id":"590f20f7503d","time":"07:28","s":"Image-hashes.json and the image check tool no longer expose image URLs on developers' domains (anonymity rule)"},{"id":"94c68a69b0e6","time":"07:28","s":"Kolaboro.com W6: quality pages read /data/quality.json with an hourly query so a stale edge 404 cannot hide the data"},{"id":"450fb04e2798","time":"07:29","s":"Satellite image packs and worker fallback (files kept for now)"},{"id":"df349fd41467","time":"07:30","s":"Kolaboro.com X6: /explain/ question box uses its own ids (the site-wide ask widget was taking it over)"},{"id":"7259b91dd085","time":"07:35","s":"Batch 6 (shipping log, open data catalog, map, similar projects, market comparison, timeline, currency, dark mode, quality pages, digest, explain) in changelog, engineering, footer, project page, cases, sitemap, llms.txt"},{"id":"afca0200b092","time":"07:39","s":"Remove the single satellite image files (served from packs)"},{"id":"5f16b9231fc8","time":"07:49","s":"Hourly findings on every project page, in the home activity strip heading, footer, engineering, changelog, sitemap, llms.txt"},{"id":"0b5dee7906b2","time":"07:49","s":"Kolaboro home: activity card labels wrap instead of being cut off"},{"id":"9f29c801ca0e","time":"08:05","s":"Kolaboro findings: budget is now 5 USD a day spread over the hourly runs"}]}],"feeds":{"atom":"/shipping/feed.xml","json":"/shipping/feed.json","badge":"/api/x/ship/badge.svg"}}
