← jason fetzerShift Investigatordocs
Back to the investigatorGolden evalsSynthetic data / read-only tools

Changelog

Every pull request merged into main, newest first, under the day it merged. Generated from the git history by python -m investigator.docsite changelog, which the Cloud Run deploy runs on the full history before it builds, so the deployed page includes the pull request that triggered the deploy. Earlier commits pushed to main without a pull request are not listed; git log has them.

2026-11-12

  • #111 Plant targets and flags: owner bands, dry-end over yield, grade baselines, downtime review with flags and recurrence, two lenses (#101)
  • #128 CLAUDE.md and the contracts aligned with how the project runs; every merge checked on the changelog
  • #121 09 · Narrative judge: DeepEval G-Eval rubric, live only, with the owner's grading page (#25)

2026-11-11

  • #109 #31b: the money on the card — dollar line, opportunities bars, the arithmetic, dollars on tiles, minutes · % · $, live rates
  • #91 13b · Rolling synthetic year with per-day seeding (#35)
  • #119 Smoke test: no stale body in the log, explicit "Live at" priority, no OpenAI default in the docs
  • #110 /docs follow-up: indented code on /docs/metrics, DEPLOYMENT live-model section, smoke test reports main
  • #112 Serve the demo at shift.talktomymachine.ai: allow-list the custom domain
  • #108 The question's own shift and window win over the rail; typo-tolerant measures (#105)
  • #107 Docs: an in-app /docs with a table of contents; retire the stale OpenAI-key wording (#93)
  • #99 Speed variance: top contributors to a speed gap — stops, setups, below-target running, grade mix (#92)

2026-11-10

  • #97 Answer shape per intent: headline, findings with cited figures, where to look (#75)
  • #96 URL grammar: a split-shift Pareto or waste breakdown resolves under a ranged grain (#90)
  • #85 07a · Data to dollars, the money tools (#31a): cost model, dollars beside every loss, shift dollars and opportunities
  • #89 08f · Chat flow (#86): the transcript scrolls, the ask bar is pinned at the bottom, the rail never moves
  • #88 URL grammar: accept and normalize the issue #20 example shapes (compare=prev, waste by=grade|setup)
  • #77 08f · The reveal: query lines tick in, the summary types, charts bloom after (#65)
  • #83 Check the ordering a narrative line asserts against the values it cites (#79)
  • #82 Analyst plan cap scales with the shifts in scope; a rejected plan degrades, not stops (#78)
  • #81 Intent: speed phrasings route to speed, volume phrasings to volume (#74)
  • #80 08c · Precompute per-shift KPIs at build time; period reports become lookups (#34)
  • #68 Layout shell from the mockup: rail, ask bar, card frame, skeleton on submit (#63)
  • #66 Rollstock consumed: the tool, measure=rollstock, and its goldens (#61)
  • #67 Analyst off the hot path: offline first, one checked plan, streamed narrative, no shared lock (#23)
  • #59 Preview and main deploys retry a Cloud Run write another run beat them to; main routes traffic by revision name

2026-11-09

  • #62 URL-addressable questions: every offline view is one canonical URL (#20)
  • #64 Sessions do not try to open the preview URL; the owner does, in /review-pr
  • #58 /evals: the golden set in the app, with the score and latency trend (#26)
  • #57 The query box at the top, Datasette-style: the compact trace above the summary and charts, open (#40)
  • #56 Sessions catch up with main by merging, never by rebasing a pushed branch
  • #50 Keyless Cloud Run deploy (WIF), README current, scaling decisions on record (#28)
  • #52 Light theme by default; the pinned toggle wins; chart and heatmap inks checked on light
  • #55 Latency budget in evals: per-case max_ms, offline p50/p95 gate, latency_ms in history (rebased)
  • #54 Preview cleanup checks out main for the helper script, not the PR head
  • #49 Claude Code operating loop: /issues, /review-pr, /approve-pr
  • #48 docs/design: the accepted ask-and-answer mockup for the SPA epic (#44)
  • #47 Preview URL per pull request: tagged Cloud Run revisions with no traffic
  • #43 Public demo defaults to the offline planner; the model is a choice (#42)
  • #39 Compress responses, revalidate static files, build the trace after the first paint
  • #37 Build the synthetic months at image build time; boot from the prebuilt folder in ~150 ms
  • #32 Survive a second instance and a restart: shared public token, fresh session on unknown id, client retry

2026-11-08

  • #30 Config pack: CLAUDE.md, permission denies, three skills, reviewer subagent

2026-10-16

  • #13 Public demo: switch for the live model via Secret Manager
  • #12 Serve the health check at /api/health; /healthz is reserved on *.run.app
  • #11 Cloud Run deploy: allow-list both service URL forms
  • #10 Cloud Run deploy: use the real service URL for PUBLIC_DEMO_ORIGIN
  • #9 Hosted public-demo mode, Dockerfile, and deploy workflows

2026-09-08

  • #8 Add working corrugator shift investigator

2026-09-06

  • #4 docs: explain tool execution SQL context and charts
  • #2 docs: explain how to build the investigation agent

Rendered from docs/CHANGELOG.md in the repository.