fix(agent): salvage Gemini regression fixtures #140

Merged
pdurlej merged 1 commit from codex/salvage-gemini-wave-tests into main 2026-06-03 08:52:25 +02:00
Collaborator

Canary status: missing — fire 3+3 review before merge

Summary

Salvages the useful regression coverage from Gemini's Wave 0/1/2 PRs while removing unrelated AGENTS.md drift and rewriting the risky implementation parts.

This PR consolidates the usable parts of #135-#139:

  • #100/#101: getRecentActivity today boundary and filter matrix fixtures
  • #105: deep audit redaction fixture, corrected so authHeader is redacted
  • #108: relation idempotency mismatch integration coverage
  • #113/#58: manual drift after agent move is not classified as agent_diverged
  • #122: flow metrics can compute lead/cycle time for completions whose create/start events are before the requested window

Scope

  • Tighten audit redaction for auth, authHeader, and authorizationHeader keys.
  • Seed flow metric lead-time state from current cards and batch-fetch prior transition history for completed cards missing cycle-start state.
  • Keep projection drift attribution metadata, but classify agent_diverged only when the latest move has an exact activityPublicId audit lineage.
  • Add focused unit/integration regression tests.

Non-goals

  • No AGENTS.md changes.
  • No production deploy.
  • No DB schema migration.
  • No broad rewrite of flow analytics.
  • No merge of Gemini PRs as-is.

Spec sources read

  • Current AGENTS.md in repo.
  • Gemini PR diffs #135-#139.
  • Existing Kan-ductor agent router/repository tests.

Tests / smoke

  • pnpm --filter @kan/api exec vitest src/routers/agent.test.ts --run — passed, 27 tests.
  • pnpm --filter @kan/api exec vitest integration-tests/agent.integration.test.ts --run — passed, 15 tests.
  • pnpm --filter @kan/db typecheck — passed.
  • pnpm --filter @kan/api typecheck — passed after local pnpm --filter @kan/db build, because API reads @kan/db declaration output from packages/db/dist.
  • pnpm --filter @kan/api exec eslint src/routers/agent.ts src/routers/agent.test.ts — passed.
  • pnpm --filter @kan/db exec eslint src/repository/agent.repo.ts — passed.
  • pnpm exec prettier --check packages/api/src/routers/agent.ts packages/api/src/routers/agent.test.ts packages/api/integration-tests/agent.integration.test.ts packages/db/src/repository/agent.repo.ts — passed.

Full pnpm --filter @kan/api lint remains red on existing main debt: integration-tests are outside API tsconfig project service and unrelated older lint issues exist in board.ts, card.ts, webhook*, etc.

Rollback

Revert this single commit. It only touches API/router tests, agent router logic, and agent repository transition-history filtering. No schema/data migration.

Owner gates

No production-impacting action taken. Merge decision remains with Piotr.

Canary status: missing — fire 3+3 review before merge ## Summary Salvages the useful regression coverage from Gemini's Wave 0/1/2 PRs while removing unrelated `AGENTS.md` drift and rewriting the risky implementation parts. This PR consolidates the usable parts of #135-#139: - #100/#101: `getRecentActivity` today boundary and filter matrix fixtures - #105: deep audit redaction fixture, corrected so `authHeader` is redacted - #108: relation idempotency mismatch integration coverage - #113/#58: manual drift after agent move is not classified as `agent_diverged` - #122: flow metrics can compute lead/cycle time for completions whose create/start events are before the requested window ## Scope - Tighten audit redaction for `auth`, `authHeader`, and `authorizationHeader` keys. - Seed flow metric lead-time state from current cards and batch-fetch prior transition history for completed cards missing cycle-start state. - Keep projection drift attribution metadata, but classify `agent_diverged` only when the latest move has an exact `activityPublicId` audit lineage. - Add focused unit/integration regression tests. ## Non-goals - No `AGENTS.md` changes. - No production deploy. - No DB schema migration. - No broad rewrite of flow analytics. - No merge of Gemini PRs as-is. ## Spec sources read - Current `AGENTS.md` in repo. - Gemini PR diffs #135-#139. - Existing Kan-ductor agent router/repository tests. ## Tests / smoke - `pnpm --filter @kan/api exec vitest src/routers/agent.test.ts --run` — passed, 27 tests. - `pnpm --filter @kan/api exec vitest integration-tests/agent.integration.test.ts --run` — passed, 15 tests. - `pnpm --filter @kan/db typecheck` — passed. - `pnpm --filter @kan/api typecheck` — passed after local `pnpm --filter @kan/db build`, because API reads `@kan/db` declaration output from `packages/db/dist`. - `pnpm --filter @kan/api exec eslint src/routers/agent.ts src/routers/agent.test.ts` — passed. - `pnpm --filter @kan/db exec eslint src/repository/agent.repo.ts` — passed. - `pnpm exec prettier --check packages/api/src/routers/agent.ts packages/api/src/routers/agent.test.ts packages/api/integration-tests/agent.integration.test.ts packages/db/src/repository/agent.repo.ts` — passed. Full `pnpm --filter @kan/api lint` remains red on existing main debt: integration-tests are outside API tsconfig project service and unrelated older lint issues exist in `board.ts`, `card.ts`, `webhook*`, etc. ## Rollback Revert this single commit. It only touches API/router tests, agent router logic, and agent repository transition-history filtering. No schema/data migration. ## Owner gates No production-impacting action taken. Merge decision remains with Piotr.
fix(agent): salvage Gemini regression fixtures
All checks were successful
Forgejo CI / verify (pull_request) Successful in 47s
c7abc7b89b
pdurlej deleted branch codex/salvage-gemini-wave-tests 2026-06-03 08:52:25 +02:00
Sign in to join this conversation.
No reviewers
No labels
3plus3-followup
agent/claude-code
agent/codex
agent/hermes
agent/iskra
agent/ollama
agent/patchwarden
analytics
api
cockpit
dependency/blocked
dependency/blocks-others
dependency/cross-repo
dependency/needs-confirmation
docs
domain:agents
domain:ci
domain:docs
domain:forgejo
domain:infra
domain:memory
domain:runtime
domain:signal
domain:ux
flow/architecture
flow/blocked
flow/deployed
flow/done
flow/implementation
flow/intake
flow/maintained
flow/observed
flow/ready
flow/refining
flow/retired
flow/review
gemini-flash
judge/codex-candidate
judge/hermes-candidate
judge/low-confidence
judge/needs-refinement
judge/operator-needed
judge/p0
judge/p1
judge/p2
judge/p3
judge/park
judge/patchwarden-candidate
judge/stale-priority
kind/adr
kind/bug
kind/chore
kind/feature
kind/infra
kind/ops
kind/refactor
kind/research
leviathan
mcp
merge/auto
merge/manual
merge/manual-dependency-conflict
merge/manual-failing-tests
merge/manual-merge-conflict
merge/manual-missing-review
merge/manual-operator-preference
merge/manual-red-zone
merge/manual-security-sensitive
merge/manual-unclear-scope
merge/manual-unknown
mode:operator-only
mode:patchwarden-iskra-approved
mode:safe-auto
observed/erroring
observed/needs-followup
observed/pending
observed/retire-candidate
observed/unused
observed/used
ops
priority:p0
priority:p1
priority:p2
priority:p3
review:claude-reviewed
review:codex-reviewed
review:dziadek-reviewed
review:needs-human
safety
safety:external-write
safety:no-prod-mutation
safety:prod-impact
safety:secret-touch
scout
security
size/large
size/medium
size/small
size/tiny
size/unknown
small-task
source/adr
source/agent-generated
source/manual
source/operator-chat
source/voice-note
status:blocked
status:codex-ready
status:merged:pending-evidence
status:needs-evidence
status:operator-needed
status:parked
tests
tier:0-platform-substrate
tier:1-iskra-value-layer
tier:2-tools-products-modules
type:bug
type:chore
type:docs
type:feat
type:policy
type:research
ui
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pdurlej/kan-ductor!140
No description provided.