You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of epic #1047. Drew's question 2026-10-26: "is it fully documented on the dashboard?" — currently NO for the research layer. Close that gap:
The evidence baseline (evidence-and-interpretation-baseline-2026-10-20.md: dated official pricing wording + interpretation notes + change-detection protocol), the master tracker, and free-services-to-check.md live only in ~/workspace/ai-subscriptions/. Surface them from /quota: per-service "sources" links on each detail page (/quota/service/) naming the tracker row, baseline section, and quota-view section the card was built from, plus a hub-level sources section.
Placeholder accuracy: OCI (no account, signup in progress), Backblaze B2, Fly.io, Baseten (no account / candidate) must render as explicit status cards or be listed in a "not held / candidates" section — never silently absent, never presented as held.
Freshness contract stays: every card shows measured-at + source class; stale renders dimmed. This issue adds provenance links, it does not weaken that.
Acceptance: from any SaaS card a reader can reach the exact research record behind its numbers in one click; candidates are visible as candidates.
Evidence at HEAD (laptop clone, origin/main 39e8410):
pm-stack/aggregator/src/render.tsrenderServiceDetail (~1886–1935): the detail page shows only plain-text source: <sourceNote>, and that note is generic — quota-view.md Part (b) — local-record snapshot; no live checks performed (set in saas-extract.tsextractSaasServices). No per-service "sources" links naming the tracker row, baseline section, or quota-view section.
git grep on origin/main: zero references to evidence-and-interpretation-baseline or free-services-to-check anywhere in pm-stack/ — the research layer is unreachable from the dashboard.
The hub renderer (renderQuota, render.ts ~1750–1845) has no hub-level sources section.
pm-stack/aggregator/src/saas-extract.ts SERVICE_SPECS contains only cloudflare, turso, supabase, github, vercel, modal, oci, bitwarden. Backblaze B2, Fly.io, and Baseten have no spec at all — they are silently absent from /quota, exactly what the issue forbids.
Partial credit: OCI already exists (saas-extract.ts:569–578) with status no-account and shell note "No account — signup blocked; placeholder card (§1.4)".
Route: follow-up small_fix packet enqueued (dedupe repo-health:v1:fix:developing-today/code:issue:1058): add per-service sources + hub sources section in render.ts, and candidate SERVICE_SPECS for Backblaze B2 / Fly.io / Baseten, preserving the freshness contract. Issue stays open pending that fix.
Task: Label reset only. The triage claim (task 2328) completed with a CONFIRMED verdict and enqueued follow-up fix task 2992, but the issue kept queue/claimed + work/assigned + status/in-progress. Task 2992 is verified queued and unclaimed, so the labels now read queue/queued + status/needs-triage to match.
Expectation: the queued fix task (add per-service sources + hub sources section in render.ts; candidate SERVICE_SPECS for Backblaze B2 / Fly.io / Baseten) is picked up by a queue lane in due course.
agent-note:v1 · task 2992 (small_fix, lane A) · state: done — remainder merged in PR #3677 (merge 0bb0079). Delivered: per-service Sources block on /quota/service/ (tracker row / quota-view section / evidence baseline), hub-level Sources section on /quota, and Backblaze B2 / Fly.io / Baseten as explicit candidate cards (never silently absent, never presented as held). Codex P2 on the PR (ownership inferred from a missing tracker row) fixed in 4931464 with a regression test; CodeRabbit copy minors applied in d4107de. Aggregator usage suite 39/39 pass on the laptop at the merged head. With the halves confirmed done by re-triage 5528, the issue acceptance is met — closing.
Activity
developing-today commentedon Oct 27, 2026
CODE-203
dezren39 commentedon Oct 29, 2026
🤖 Agent note · picked up
dezren39 commentedon Oct 29, 2026
🤖 Agent note · done
39e8410b1a23b99c9cb1f93c2ce869830a916c06.Evidence at HEAD (laptop clone, origin/main 39e8410):
pm-stack/aggregator/src/render.tsrenderServiceDetail(~1886–1935): the detail page shows only plain-textsource: <sourceNote>, and that note is generic —quota-view.md Part (b) — local-record snapshot; no live checks performed(set insaas-extract.tsextractSaasServices). No per-service "sources" links naming the tracker row, baseline section, or quota-view section.git grepon origin/main: zero references toevidence-and-interpretation-baselineorfree-services-to-checkanywhere inpm-stack/— the research layer is unreachable from the dashboard.renderQuota, render.ts ~1750–1845) has no hub-level sources section.pm-stack/aggregator/src/saas-extract.tsSERVICE_SPECS contains only cloudflare, turso, supabase, github, vercel, modal, oci, bitwarden. Backblaze B2, Fly.io, and Baseten have no spec at all — they are silently absent from /quota, exactly what the issue forbids.no-accountand shell note "No account — signup blocked; placeholder card (§1.4)".Route: follow-up small_fix packet enqueued (dedupe
repo-health:v1:fix:developing-today/code:issue:1058): add per-service sources + hub sources section in render.ts, and candidate SERVICE_SPECS for Backblaze B2 / Fly.io / Baseten, preserving the freshness contract. Issue stays open pending that fix.dezren39 commentedon Oct 29, 2026
🤖 Agent note · handed off
queue/claimed+work/assigned+status/in-progress. Task 2992 is verified queued and unclaimed, so the labels now readqueue/queued+status/needs-triageto match.12 remaining items
aggregator: /quota sources provenance + B2/Fly/Baseten candidate cards (
aggregator: do not infer candidate/not-held from a missing tracker row (
aggregator: scope hub Sources copy to cards that carry provenance (#1058
Merge pull request #3677 from developing-today/queue/2992-1058-quota-…
dezren39 commentedon Nov 1, 2026
agent-note:v1 · task 2992 (small_fix, lane A) · state: done — remainder merged in PR #3677 (merge 0bb0079). Delivered: per-service Sources block on /quota/service/ (tracker row / quota-view section / evidence baseline), hub-level Sources section on /quota, and Backblaze B2 / Fly.io / Baseten as explicit candidate cards (never silently absent, never presented as held). Codex P2 on the PR (ownership inferred from a missing tracker row) fixed in 4931464 with a regression test; CodeRabbit copy minors applied in d4107de. Aggregator usage suite 39/39 pass on the laptop at the merged head. With the halves confirmed done by re-triage 5528, the issue acceptance is met — closing.