{"generatedAt":"2026-06-23T09:27:43.095Z","windowDays":90,"totalRevsAllTime":192,"totalRevsInWindow":192,"activeDaysInWindow":12,"avgRevsPerActiveDay":16,"peakDay":{"date":"2026-05-02","count":27},"peakWeek":{"weekStart":"2026-04-30","weekEnd":"2026-05-06","count":107},"peakWeekRevs":[{"rev":"rev 146","date":"2026-05-06","title":"Per-source quietness daily-digest section + bulk-ack endpoint closes the named rev-145 next-sprint candidate at the email channel + the bulk-action axis (bui…"},{"rev":"rev 145","date":"2026-05-06","title":"Per-source quietness alarm cluster closes the named rev-144 next-sprint candidate (acknowledgeSourceQuietness helper + POST /api/sources/{id}/quietness-ack +…"},{"rev":"rev 144","date":"2026-05-06","title":"Per-source quietness/staleness surface closes the named rev-143 next-sprint candidate (computeSourceQuietness + getSourceQuietnessOverview helpers + dashboar…"},{"rev":"rev 143","date":"2026-05-06","title":"Bulk per-source poll-cadence override closes the named rev-142 next-sprint candidate at the cadence axis (POST /api/sources/bulk-cadence + v1 mirror in locks…"},{"rev":"rev 142","date":"2026-05-06","title":"Per-source next-poll visibility closes the named rev-141 next-sprint candidate at the protocol surface (GET /api/v1/sources/cadence-overview + dashboard inli…"},{"rev":"rev 141","date":"2026-05-06","title":"Per-source poll-cadence override closes the named rev-140 next-sprint candidate (PATCH /api/sources/{id} accepts pollIntervalMinutes + v1 mirror + RSS poller…"},{"rev":"rev 140","date":"2026-05-06","title":"Per-workspace loop interval admin control (PATCH /api/workspace/loop-interval + dashboard popover + v1 mirror) closes long-outstanding configuration gap + OC…"},{"rev":"rev 139","date":"2026-05-06","title":"OCC primitive extended to the rev-136 density axis — closes the named rev-138 next-sprint candidate + Outpaced — reloaded chip on the rev-39 density toggle +…"},{"rev":"rev 138","date":"2026-05-06","title":"OCC extended to costPanelOrder per-axis on the rev-127 multi-device-synced cost panels + Outpaced — reloaded chip vocabulary across all three cost-panel axes…"},{"rev":"rev 137","date":"2026-05-06","title":"Stale-write rejection telemetry on the rev-136 OCC primitive + Outpaced — reloaded chip on per-thread filter row + v1 mirror in lockstep + OpenAPI typed cove…"},{"rev":"rev 136","date":"2026-05-06","title":"Server-side optimistic concurrency control on per-thread filter sync + dashboard density preference synced across devices + OpenAPI typed coverage in lockste…"},{"rev":"rev 135","date":"2026-05-06","title":"Multi-device sync of per-thread discussion filter scope via dashboardPrefs JSONB + Synced/Restored chip distinguishes server-vs-localStorage source + OpenAPI…"},{"rev":"rev 134","date":"2026-05-06","title":"Per-task discussion filter persistence in localStorage + visible Clear-filters + Restored-filter chips + since=ISO recency axis on the v1 comments endpoint w…"},{"rev":"rev 133","date":"2026-05-06","title":"Per-task discussion permalink with active-match anchor + Copy match link chip + OpenAPI typed coverage on the share-permalink format + cumulative dashboard p…"},{"rev":"rev 132","date":"2026-05-06","title":"Per-thread search matchedIds on the v1/MCP surface + dashboard endpoint mirror with q + authorId query params + OpenAPI typed coverage + inline ↑↓ button aff…"},{"rev":"rev 131","date":"2026-05-06","title":"Per-author identity primitive on the v1 surface + match highlight on rev-111 marked.js HTML render path + match counter chip + ↑↓ arrow-key navigation throug…"},{"rev":"rev 130","date":"2026-05-06","title":"Per-thread search match highlighting + reactions-only filter axis + per-author identity avatars across comments + mentions inbox + OpenAPI typed coverage on …"},{"rev":"rev 129","date":"2026-05-06","title":"Per-thread comment search + aggregate engagement on the v1/MCP surface + OpenAPI typed coverage + Esc-to-clear thread filter"},{"rev":"rev 128","date":"2026-05-06","title":"Per-thread comment search + author filter + copy-thread markdown + aggregate-reaction summary chip on every active-work card"},{"rev":"rev 127","date":"2026-05-06","title":"Multi-device sync for cost-panel custom row order via dashboardPrefs JSONB + OpenAPI typed coverage + cross-device sync hint chip"},{"rev":"rev 126","date":"2026-05-06","title":"Drag-to-reorder rows on every cost panel (per-source / per-assignee / per-tag) + per-phase permalinks on /roadmap + Up/Down keyboard reorder + per-workspace …"},{"rev":"rev 125","date":"2026-05-06","title":"Memory CSV / JSON export closes procurement-evidence cluster's seventh axis + per-rev permalinks on /roadmap + OpenAPI typed coverage for memory export"},{"rev":"rev 124","date":"2026-05-06","title":"Cross-task drag-to-reorder + inline blocker remove on the rev-38 dependency graph + Up/Down keyboard reorder on per-task blockers"},{"rev":"rev 123","date":"2026-05-06","title":"JSON link on the rev-65 scoped activity-export UI + drag-to-reorder per-task blockers + OpenAPI typed coverage for the six-axis procurement-evidence export c…"},{"rev":"rev 122","date":"2026-05-06","title":"?format=json on every dashboard CSV export + paired CSV/JSON chips on the integrations panel + keyword search on the v1 blog endpoint"},{"rev":"rev 121","date":"2026-05-05","title":"JSON variant on every procurement-evidence v1 export endpoint (activity / outputs / decisions / stale-tasks / sources / cost) + one-tap 'Caught up' affordanc…"},{"rev":"rev 120","date":"2026-05-05","title":"Procurement-evidence CSV v1 mirrors (activity / outputs / decisions / stale-tasks) + activity log expand-all/collapse-all + per-bucket 'N new since visit' pill"},{"rev":"rev 119","date":"2026-05-05","title":"Cmd/Ctrl+Enter submits any composer + ⌘B/⌘I/⌘⇧K markdown shortcuts + Esc-to-cancel symmetry across all nine typed-input surfaces"},{"rev":"rev 118","date":"2026-05-05","title":"Auto-save drafts on memory bulk import + markdown toolbar + row-by-row staged preview + 'N staged' chip on closed trigger"},{"rev":"rev 117","date":"2026-05-05","title":"Auto-save drafts on signal-add + memory teach + task creation + visible 'Draft saved' chip across all eight composers"},{"rev":"rev 116","date":"2026-05-05","title":"Auto-save drafts on every typed-input composer + table/strikethrough/image markdown toolbar buttons + shared restored-draft callout vocabulary"},{"rev":"rev 115","date":"2026-05-03","title":"Markdown toolbar across every typed-input composer + word-count/reading-time chip + auto-save drafts on the artifact body editor"},{"rev":"rev 114","date":"2026-05-03","title":"Live markdown preview on signal detail + artifact body editor + memory teach-the-desk + memory edit — closes the rev-113 typed-input rendering quintet"},{"rev":"rev 113","date":"2026-05-03","title":"Live markdown preview across task creation form + operator notes + renew notes + comment composer + unified .ld-md-live-preview surface"},{"rev":"rev 112","date":"2026-05-03","title":"Optional renew note feeds AI as direction + persistent template markdown preview + workspace-shared template usage counts + cumulative renew-button polish"},{"rev":"rev 111","date":"2026-05-02","title":"Markdown rendering on operator notes + task comments + regenerate notes feed AI as direction + dashboard accessibility polish"},{"rev":"rev 110","date":"2026-05-02","title":"One-tap task duplicate + memory entries render as markdown + outputs panel keyword search + dashboard panel polish"},{"rev":"rev 109","date":"2026-05-02","title":"Per-tag RSS feed + '/' keyboard shortcut on /changelog + sitemap RSS entries + archive surface a11y polish"},{"rev":"rev 108","date":"2026-05-02","title":"Per-tag HTML archive page + 'More in this category' callout on post detail + archive summary stats + v1 tag endpoints"},{"rev":"rev 107","date":"2026-05-02","title":"Markdown-driven author profile overrides + chronological prev/next nav + per-category HTML archive page + v1 neighbours endpoint"},{"rev":"rev 106","date":"2026-05-02","title":"Per-author profiles (bio + avatar) + table of contents on long posts + sitemap author/category pages + v1 related-posts endpoint"},{"rev":"rev 105","date":"2026-05-02","title":"Per-author drill-down + per-category RSS feeds + v1 byline endpoints"},{"rev":"rev 104","date":"2026-05-02","title":"Reading progress bar + scroll-to-top FAB + print-friendly /blog + GET /api/v1/blog/categories"},{"rev":"rev 103","date":"2026-05-02","title":"Blog tag filter chips + JSON-LD Article markup + GET /api/v1/blog/{slug} + '/' keyboard shortcut"},{"rev":"rev 102","date":"2026-05-02","title":"Per-blog-post share affordance + per-heading anchor permalinks + blog index keyword search + GET /api/v1/blog"},{"rev":"rev 101","date":"2026-05-02","title":"Roadmap 'Copy link' chip + /changelog per-rev permalinks + /changelog keyword search + /api/v1/changelog sinceRev"},{"rev":"rev 100","date":"2026-05-02","title":"Roadmap URL-shareable filter + Recently shipped + v1 changelog endpoint + milestone polish"},{"rev":"rev 99","date":"2026-05-02","title":"Roadmap hot-strip sparkline + Trending now (7d momentum) section + status filter chips + v1 mostTrending"},{"rev":"rev 98","date":"2026-05-02","title":"Public roadmap on the v1 surface — votes + items + 14-day trend + OpenAPI typed schema"},{"rev":"rev 97","date":"2026-05-02","title":"Public roadmap upvoting + /blog/rss.xml feed + dashboard source health + latest-release pill"},{"rev":"rev 96","date":"2026-05-02","title":"Bulk source rename + sources CSV export + workspace search reaches sources + dashboard polish"},{"rev":"rev 95","date":"2026-05-02","title":"Per-task share-page input transparency + email-share wrapper + source rename + v1 + OpenAPI"},{"rev":"rev 94","date":"2026-05-02","title":"Per-task work-log share daily-views sparkline + per-task timeline share permalink + v1 + OpenAPI parity"},{"rev":"rev 93","date":"2026-05-02","title":"Per-task work log shareable permalink + workspace-shared saved searches + outbound subscription bulk actions"},{"rev":"rev 92","date":"2026-05-02","title":"Digest configuration audit endpoint + 'n' keyboard shortcut + print-friendly /share/[token] + integrations panel polish"},{"rev":"rev 91","date":"2026-05-02","title":"digest.gating_changed multi-channel push (Slack + email) + members-panel gating pill + visual polish"},{"rev":"rev 90","date":"2026-05-02","title":"digest.gating_changed closure receipt + v1 digest-config aggregate + activity-log glyph + state-pulse polish"},{"rev":"rev 89","date":"2026-05-02","title":"Inline gating banner + multi-recipient gating endpoint + dashboard simulated-date input"},{"rev":"rev 88","date":"2026-05-02","title":"Simulated-date digest preview + dashboard render-only button + OpenAPI gating block"},{"rev":"rev 87","date":"2026-05-01","title":"Bulk chronic-ack endpoints + v1 digest-preview dry-run"},{"rev":"rev 86","date":"2026-05-01","title":"OpenAPI bulk-action coverage, v1 digest preview, activity log glyph expansion"},{"rev":"rev 85","date":"2026-05-01","title":"Dashboard reset chip, per-recipient Slack quiet hours, OpenAPI v1 surface expansion"},{"rev":"rev 84","date":"2026-05-01","title":"Per-row cost-panel column visibility, dashboard-prefs reset, OpenAPI integration observability"},{"rev":"rev 83","date":"2026-05-01","title":"Panel order UI affordance, default Active Work sort, per-subscription outbound test, outbound Zod fix"},{"rev":"rev 82","date":"2026-05-02","title":"v1 desk-state control (loop + pause-until), workspace-config OpenAPI coverage, panel order forward-compat"},{"rev":"rev 81","date":"2026-05-02","title":"v1 members + invites + outbound subscriptions, per-recipient digest quiet-hours, OpenAPI invites/members coverage"},{"rev":"rev 80","date":"2026-05-02","title":"Per-recipient weekend mute, workspace reactions summary, OpenAPI discussion + reactions + focus surface coverage"},{"rev":"rev 79","date":"2026-05-01","title":"v1 dashboard-prefs mirror + per-recipient digest opt-out + activity-log bucket collapse + OpenAPI cost-axis coverage"},{"rev":"rev 78","date":"2026-05-01","title":"Personal inbox in daily digest, multi-device sync for panel collapse, OpenAPI 3.1 spec, and time-bucketed activity log"},{"rev":"rev 77","date":"2026-05-01","title":"Personal action inbox status-bar pill, per-panel collapse persistence, and v1 mirrors for whats-new + personal-inbox"},{"rev":"rev 76","date":"2026-05-01","title":"Personal chronic warnings in digest, v1 operator-notes mirror, and 'what's new since you were last here' badge"},{"rev":"rev 75","date":"2026-05-01","title":"Chronic-warning digest sections close the email parity gap + at-a-glance chronic summary on TodayPanel"},{"rev":"rev 74","date":"2026-05-01","title":"Per-source chronic warning + chronic-resumed closure receipt complete the per-source chronic loop"},{"rev":"rev 73","date":"2026-05-01","title":"Closure-receipt outbound events + chronic-ack listing endpoint close the chronic-ack loop"},{"rev":"rev 72","date":"2026-05-01","title":"Per-source + per-assignee chronic-warning ack closes the chronic-ack symmetry on every cost axis"},{"rev":"rev 71","date":"2026-05-01","title":"Per-tag chronic-warning ack + per-source/per-assignee chronic v1 mirrors close the chronic axis on every cost dimension"},{"rev":"rev 70","date":"2026-05-01","title":"Per-tag chronic-spike counter + warning closes the chronic axis on the per-tag cost story"},{"rev":"rev 69","date":"2026-05-01","title":"Per-tag cost-spike auto-pause closes the descriptive→defensive loop on the per-tag cost story"},{"rev":"rev 68","date":"2026-05-01","title":"Per-tag cost-spike acknowledgment + bulk-ack + digest section + closure receipt"},{"rev":"rev 67","date":"2026-05-01","title":"Per-tag cost trajectory + spike alarm, fifth alarm-cluster axis closes, v1 parity"},{"rev":"rev 66","date":"2026-05-01","title":"Persistent task templates, per-tag cost attribution, save-detected-pattern, v1 parity"},{"rev":"rev 65","date":"2026-05-01","title":"Recent template tracking, AI-suggested template from history, scoped activity CSV, source-coverage health line"},{"rev":"rev 64","date":"2026-05-01","title":"Task quick-start templates, per-assignee chronic warning, activity heatmap, cumulative UI polish"},{"rev":"rev 63","date":"2026-04-30","title":"Per-assignee cost-spike ack + bulk-ack + digest section + closure receipt"},{"rev":"rev 62","date":"2026-04-30","title":"Per-source chronic-spike auto-pause, per-assignee cost-spike alarm, cost CSV v1"},{"rev":"rev 61","date":"2026-04-30","title":"Per-assignee cost trajectory, persistent-spike recommendation, cost-spike-acked closure receipts"},{"rev":"rev 60","date":"2026-04-30","title":"Per-source cost spike digest section, bulk ack, trajectory sparkline, cost CSV export"},{"rev":"rev 59","date":"2026-04-30","title":"Per-source cost-spike auto-pause + ack: RSS poller filter, inline ack button, config UI, v1 endpoints"},{"rev":"rev 58","date":"2026-04-30","title":"Per-source cost spike: detector, daily Slack push, /api/v1/sources/cost-spikes, inline ⚡ pill"},{"rev":"rev 57","date":"2026-04-30","title":"Per-source cost attribution, end-of-day spend forecast, bulk cost-spike ack, cost panel polish"},{"rev":"rev 56","date":"2026-04-30","title":"Per-task cost spike auto-pause + acknowledgment, v1 cost-spike-config + ack endpoints, inline ack button, integrations panel section"},{"rev":"rev 55","date":"2026-04-30","title":"Per-task cost spike: detector, daily Slack push, /api/v1/tasks/cost-spikes, inline pill, digest section"},{"rev":"rev 54","date":"2026-04-30","title":"Per-task cost trajectory: pulse plumbing, dashboard sparkline, v1 endpoint, top-cost panel mini-chart"},{"rev":"rev 53","date":"2026-04-30","title":"Per-recipient cost in digest, /api/v1/cost/today, dashboard self-cost highlight, 7-day cost sparkline"},{"rev":"rev 52","date":"2026-04-30","title":"Per-assignee cost breakdown: dashboard panel, cost-spike scoping, v1 endpoint, MCP-cost story closes"},{"rev":"rev 51","date":"2026-04-30","title":"Per-task cost attribution: cumulative tokens on every task, dashboard pill, top-cost panel, v1 endpoints"},{"rev":"rev 50","date":"2026-04-30","title":"Pre-archive warning to assignee, stale-tasks CSV, /api/v1/tasks/auto-archived audit, one-tap renew"},{"rev":"rev 49","date":"2026-04-30","title":"Stale-task auto-archive lifecycle close, per-recipient digest scoping, v1 + dashboard config, countdown pill"},{"rev":"rev 48","date":"2026-04-30","title":"Stale-task push across digest + Slack + outbound, v1 mirror, in-line staleness pill"},{"rev":"rev 47","date":"2026-04-30","title":"Share-page status filter, decisions CSV export, stale-task detector, dashboard hover polish"},{"rev":"rev 46","date":"2026-04-30","title":"Share-page kind filter, /api/v1/decisions, outbound deliveries + retry on v1, activity keyword search on v1"},{"rev":"rev 45","date":"2026-04-30","title":"Share-page tag drill-down, v1 workspace export + today snapshot, source health on v1"},{"rev":"rev 44","date":"2026-04-30","title":"Per-task memory transparency, full share-page revision lineage, v1 artifact versions, task source-evidence in JSON export"},{"rev":"rev 43","date":"2026-04-30","title":"Per-task input transparency, memory copy, JSON-export source evidence, v1 workspace summary"},{"rev":"rev 42","date":"2026-04-30","title":"Share-page input transparency, markdown copy on artifacts, search entity scoping, workspace at-a-glance"},{"rev":"rev 41","date":"2026-04-30","title":"AI cycle input transparency, v1 timeline + import + sources mirrors, per-source sparkline"},{"rev":"rev 40","date":"2026-04-30","title":"v1 tag drill-down + rename mirror, per-task timeline, workspace JSON import, source preview v1"}],"topWeeks":[{"weekStart":"2026-04-30","weekEnd":"2026-05-06","revCount":107},{"weekStart":"2026-05-07","weekEnd":"2026-05-13","revCount":57},{"weekStart":"2026-04-23","weekEnd":"2026-04-29","revCount":28}],"cadence":[{"date":"2026-03-26","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-03-27","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-03-28","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-03-29","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-03-30","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-03-31","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-01","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-02","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-03","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-04","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-05","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-06","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-07","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-08","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-09","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-10","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-11","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-12","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-13","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-14","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-15","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-16","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-17","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-18","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-19","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-20","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-21","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-22","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-23","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-24","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-25","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-26","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-27","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-04-28","revCount":5,"sampleRevs":[{"rev":"rev 14","title":"Operator steering, cycle latency, and a public changelog"},{"rev":"rev 13","title":"Governance hardening + a single trust number"},{"rev":"rev 12","title":"Programmatic API, output filter, heartbeat, work log"},{"rev":"rev 11","title":"Stakeholder share links + approval-loop closure"},{"rev":"rev 10","title":"Governance-first positioning + markdown outputs"}],"historicalTrajectory":{"label":"Accelerating","latest":5,"prior":0,"delta":5,"hasActivity":true}},{"date":"2026-04-29","revCount":23,"sampleRevs":[{"rev":"rev 39","title":"Per-output revision diff, cross-entity tag drill-down, tag rename/merge, dashboard density toggle"},{"rev":"rev 38","title":"Dependency graph view, public roadmap page, source URL preview, activity search"},{"rev":"rev 37","title":"Task unblocked push, v1 blockers endpoint, public RSS, 'now ready' task cue"},{"rev":"rev 36","title":"Task dependencies, source bulk ops, digest preview, v1 task badges, task-card colour accents"},{"rev":"rev 35","title":"v1 bulk endpoints, mention-ack push, comment count badges, 7-day baseline, activity glyphs"}],"historicalTrajectory":{"label":"Accelerating","latest":28,"prior":0,"delta":28,"hasActivity":true}},{"date":"2026-04-30","revCount":24,"sampleRevs":[{"rev":"rev 63","title":"Per-assignee cost-spike ack + bulk-ack + digest section + closure receipt"},{"rev":"rev 62","title":"Per-source chronic-spike auto-pause, per-assignee cost-spike alarm, cost CSV v1"},{"rev":"rev 61","title":"Per-assignee cost trajectory, persistent-spike recommendation, cost-spike-acked closure receipts"},{"rev":"rev 60","title":"Per-source cost spike digest section, bulk ack, trajectory sparkline, cost CSV export"},{"rev":"rev 59","title":"Per-source cost-spike auto-pause + ack: RSS poller filter, inline ack button, config UI, v1 endpoints"}],"historicalTrajectory":{"label":"Accelerating","latest":52,"prior":0,"delta":52,"hasActivity":true}},{"date":"2026-05-01","revCount":21,"sampleRevs":[{"rev":"rev 87","title":"Bulk chronic-ack endpoints + v1 digest-preview dry-run"},{"rev":"rev 86","title":"OpenAPI bulk-action coverage, v1 digest preview, activity log glyph expansion"},{"rev":"rev 85","title":"Dashboard reset chip, per-recipient Slack quiet hours, OpenAPI v1 surface expansion"},{"rev":"rev 84","title":"Per-row cost-panel column visibility, dashboard-prefs reset, OpenAPI integration observability"},{"rev":"rev 83","title":"Panel order UI affordance, default Active Work sort, per-subscription outbound test, outbound Zod fix"}],"historicalTrajectory":{"label":"Accelerating","latest":73,"prior":0,"delta":73,"hasActivity":true}},{"date":"2026-05-02","revCount":27,"sampleRevs":[{"rev":"rev 111","title":"Markdown rendering on operator notes + task comments + regenerate notes feed AI as direction + dashboard accessibility polish"},{"rev":"rev 110","title":"One-tap task duplicate + memory entries render as markdown + outputs panel keyword search + dashboard panel polish"},{"rev":"rev 109","title":"Per-tag RSS feed + '/' keyboard shortcut on /changelog + sitemap RSS entries + archive surface a11y polish"},{"rev":"rev 108","title":"Per-tag HTML archive page + 'More in this category' callout on post detail + archive summary stats + v1 tag endpoints"},{"rev":"rev 107","title":"Markdown-driven author profile overrides + chronological prev/next nav + per-category HTML archive page + v1 neighbours endpoint"}],"historicalTrajectory":{"label":"Accelerating","latest":100,"prior":0,"delta":100,"hasActivity":true}},{"date":"2026-05-03","revCount":4,"sampleRevs":[{"rev":"rev 115","title":"Markdown toolbar across every typed-input composer + word-count/reading-time chip + auto-save drafts on the artifact body editor"},{"rev":"rev 114","title":"Live markdown preview on signal detail + artifact body editor + memory teach-the-desk + memory edit — closes the rev-113 typed-input rendering quintet"},{"rev":"rev 113","title":"Live markdown preview across task creation form + operator notes + renew notes + comment composer + unified .ld-md-live-preview surface"},{"rev":"rev 112","title":"Optional renew note feeds AI as direction + persistent template markdown preview + workspace-shared template usage counts + cumulative renew-button polish"}],"historicalTrajectory":{"label":"Accelerating","latest":104,"prior":0,"delta":104,"hasActivity":true}},{"date":"2026-05-04","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-05","revCount":6,"sampleRevs":[{"rev":"rev 121","title":"JSON variant on every procurement-evidence v1 export endpoint (activity / outputs / decisions / stale-tasks / sources / cost) + one-tap 'Caught up' affordanc…"},{"rev":"rev 120","title":"Procurement-evidence CSV v1 mirrors (activity / outputs / decisions / stale-tasks) + activity log expand-all/collapse-all + per-bucket 'N new since visit' pill"},{"rev":"rev 119","title":"Cmd/Ctrl+Enter submits any composer + ⌘B/⌘I/⌘⇧K markdown shortcuts + Esc-to-cancel symmetry across all nine typed-input surfaces"},{"rev":"rev 118","title":"Auto-save drafts on memory bulk import + markdown toolbar + row-by-row staged preview + 'N staged' chip on closed trigger"},{"rev":"rev 117","title":"Auto-save drafts on signal-add + memory teach + task creation + visible 'Draft saved' chip across all eight composers"}],"historicalTrajectory":{"label":"Accelerating","latest":105,"prior":5,"delta":100,"hasActivity":true}},{"date":"2026-05-06","revCount":25,"sampleRevs":[{"rev":"rev 146","title":"Per-source quietness daily-digest section + bulk-ack endpoint closes the named rev-145 next-sprint candidate at the email channel + the bulk-action axis (bui…"},{"rev":"rev 145","title":"Per-source quietness alarm cluster closes the named rev-144 next-sprint candidate (acknowledgeSourceQuietness helper + POST /api/sources/{id}/quietness-ack +…"},{"rev":"rev 144","title":"Per-source quietness/staleness surface closes the named rev-143 next-sprint candidate (computeSourceQuietness + getSourceQuietnessOverview helpers + dashboar…"},{"rev":"rev 143","title":"Bulk per-source poll-cadence override closes the named rev-142 next-sprint candidate at the cadence axis (POST /api/sources/bulk-cadence + v1 mirror in locks…"},{"rev":"rev 142","title":"Per-source next-poll visibility closes the named rev-141 next-sprint candidate at the protocol surface (GET /api/v1/sources/cadence-overview + dashboard inli…"}],"historicalTrajectory":{"label":"Accelerating","latest":107,"prior":28,"delta":79,"hasActivity":true}},{"date":"2026-05-07","revCount":23,"sampleRevs":[{"rev":"rev 169","title":"Two more industry onboarding templates (Accounting / compliance + Fitness / wellness studios) + per-template detail pages at /templates/[key] with their own …"},{"rev":"rev 168","title":"Two more industry onboarding templates (Property management + Nonprofit / membership) + per-author OG images on /blog/author/[slug] + per-post OG images on /…"},{"rev":"rev 167","title":"Three more industry onboarding templates (Field services + Restaurant/hospitality + Education) + dynamic per-page OG images via next/og — closes the named re…"},{"rev":"rev 166","title":"Two more industry onboarding templates (Real estate + Legal) + public /templates marketing page + clickable activation checklist step rows + rich social-shar…"},{"rev":"rev 165","title":"Strategic diversification — Healthcare/Wellness onboarding template + public /integrations marketing page + activation checklist v2 (6 steps with refreshed c…"}],"historicalTrajectory":{"label":"Accelerating","latest":106,"prior":52,"delta":54,"hasActivity":true}},{"date":"2026-05-08","revCount":19,"sampleRevs":[{"rev":"rev 188","title":"Deliberate diversification away from the 12-rev cadence/changelog cluster (rev 178-187 each shipped a cadence-axis primitive) onto the operator-stickiness te…"},{"rev":"rev 187","title":"Closes the named rev-186 next-sprint candidate (per-week trend mini-sparkline beside the rev-186 peak-week stat card on /changelog/cadence) so a procurement …"},{"rev":"rev 186","title":"Closes the named rev-185 next-sprint candidate (per-rev-shipping-week stat card on the rev-179 /changelog/cadence stats grid) at three coordinated surfaces (…"},{"rev":"rev 185","title":"Closes the named rev-184 next-sprint candidate (per-rev historical trajectory chip on the rev-178 /changelog/cadence stats rollup) at three coordinated surfa…"},{"rev":"rev 184","title":"Closes the named rev-183 next-sprint candidate (trajectory verb on the rev-180 ShippingCadencePill tooltip) at the load-bearing in-app axis — the rev-181 4-w…"}],"historicalTrajectory":{"label":"Accelerating","latest":104,"prior":73,"delta":31,"hasActivity":true}},{"date":"2026-05-09","revCount":12,"sampleRevs":[{"rev":"rev 200","title":"Milestone revision — 200 unbroken rev-by-rev cadence revs shipped on the public changelog. Deliberate diversification away from the 13-rev templates grind (r…"},{"rev":"rev 199","title":"Closes two more named radar candidates at the templates axis (small independent jewellers with named-craftsman continuity + custom-order milestone cadence + …"},{"rev":"rev 198","title":"Closes two more named radar candidates at the templates axis (independent ski / snowboard rental shops with seasonal inventory turn + named-tech continuity +…"},{"rev":"rev 197","title":"Closes two more named radar candidates at the templates axis (small independent ice-cream / gelato shops with recipe-yield discipline per named flavour + sup…"},{"rev":"rev 196","title":"Closes two more named radar candidates at the templates axis (small independent fabric / quilting shops with supplier continuity + 60-day-ahead class program…"}],"historicalTrajectory":{"label":"Cooling","latest":89,"prior":100,"delta":-11,"hasActivity":true}},{"date":"2026-05-10","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-11","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-12","revCount":3,"sampleRevs":[{"rev":"rev 203","title":"Closes the named rev-202 next-sprint candidate (v1 parity gap on /pricing) + ships two more templates from the rev-201 named radar wave (cheesemongers + book…"},{"rev":"rev 202","title":"Deliberate diversification away from the 14-rev templates cluster (rev 188-201 each shipped templates-axis primitives — verticals added, depth/freshness sign…"},{"rev":"rev 201","title":"Closes two more named rev-199 radar candidates at the templates axis (independent toy / hobby shops with named-supplier continuity + age-gating + safety hygi…"}],"historicalTrajectory":{"label":"Cooling","latest":82,"prior":105,"delta":-23,"hasActivity":true}},{"date":"2026-05-13","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-14","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-15","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-16","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-17","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-18","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-19","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-20","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-21","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-22","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-23","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-24","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-25","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-26","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-27","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-28","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-29","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-30","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-05-31","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-01","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-02","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-03","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-04","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-05","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-06","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-07","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-08","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-09","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-10","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-11","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-12","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-13","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-14","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-15","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-16","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-17","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-18","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-19","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-20","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-21","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-22","revCount":0,"sampleRevs":[],"historicalTrajectory":null},{"date":"2026-06-23","revCount":0,"sampleRevs":[],"historicalTrajectory":null}],"weeklyCadence":[{"weekStart":"2026-03-26","weekEnd":"2026-04-01","revCount":0},{"weekStart":"2026-04-02","weekEnd":"2026-04-08","revCount":0},{"weekStart":"2026-04-09","weekEnd":"2026-04-15","revCount":0},{"weekStart":"2026-04-16","weekEnd":"2026-04-22","revCount":0},{"weekStart":"2026-04-23","weekEnd":"2026-04-29","revCount":28},{"weekStart":"2026-04-30","weekEnd":"2026-05-06","revCount":107},{"weekStart":"2026-05-07","weekEnd":"2026-05-13","revCount":57},{"weekStart":"2026-05-14","weekEnd":"2026-05-20","revCount":0},{"weekStart":"2026-05-21","weekEnd":"2026-05-27","revCount":0},{"weekStart":"2026-05-28","weekEnd":"2026-06-03","revCount":0},{"weekStart":"2026-06-04","weekEnd":"2026-06-10","revCount":0},{"weekStart":"2026-06-11","weekEnd":"2026-06-17","revCount":0}]}