Complete productivity review FRE-4808, fix review pipeline assignments for 3 issues [FRE-5100]

This commit is contained in:
2026-05-10 08:09:41 -04:00
parent bc7bf124f5
commit 7b50a53838
8 changed files with 154 additions and 60 deletions

View File

@@ -335,6 +335,38 @@ When you complete a code review:
- Assigned back to Senior Engineer for fixes
- Status moved to in_progress
### 2026-05-10 (Sunday) — FRE-4574 Second-Pass Review
**Issue**: FRE-4574 — ShieldAI Production Infrastructure & CI/CD Pipeline
**Action Taken**:
- Checked out issue for second-pass review
- Verified all 24 changed files via git diff
- Verified 4 explicitly mentioned fixes + many additional fixes
**Verified Fixes**:
- P1: ALB public subnets, internal=false, dedicated SG
- P1: ACM cert DNS validation (Route53 zone, records, validation)
- P1: Deploy workflow (no circular dependency, HTTPS health check, rollback)
- P1: Secrets module (db_password, redis_auth_token)
- P2: KMS deletion_window_in_days = 7
- P2: HTTPS listener path-based routing + HTTP→HTTPS redirect
- P2: ECS task role scoped inline policies
- P2: Dockerfiles pnpm migration
- P2: PostgreSQL version 16.2 match
- P3: VPC Flow Logs with KMS encryption
**Remaining Issues**:
- P2: ECS health check uses wget (Alpine doesn't have it)
- P2: CI terraform plan lacks AWS credentials
- P3: Unused GitHub provider
**Result**:
- Second-pass review complete — 10 fixes verified, 3 remaining issues
- Assigned back to Senior Engineer for final fixes
**Status**: Done — Passed with remaining issues, assigned to Senior Engineer
### 2026-05-10 (Sunday) — FRE-4576 Review
**Issue**: FRE-4576 — ShieldAI Browser Extension (Phishing & Spam Protection)

View File

@@ -31,7 +31,8 @@ Review complete. Found 8 P1, 5 P2, 4 P3 issues. Original engineer agent deleted
## Latest Actions (May 10)
- FRE-4806: Second-pass review complete — 2x P1, 1x P2, 2x P3. Assigned back to Founding Engineer.
- FRE-4690: Second-pass review complete — 1 P1, 1 P2, 2 P3 remaining. Assigned back to Senior Engineer.
- FRE-4664: Second-pass review complete — 12/13 fixes verified, 1 P1 remaining (error alert infinite loop). Assigned back to Senior Engineer.
## Next Steps
- Await CTO reassignment on FRE-4473
- Await fixes from engineers on 12 outstanding reviews
- Await fixes from engineers on 13 outstanding reviews

View File

@@ -15,3 +15,28 @@
- **FRE-4737** — No fixes, P0/P1/P2/P3 remain. Engineer deleted → CTO
- **FRE-4576** — No fixes, 3 P1/5 P2/3 P3 remain. Engineer deleted → CTO
- **FRE-4807** — Fixes verified, approved. No Security Reviewer → CTO
## FRE-4574 — Code Review: Second-pass security fix review
- Verified all 13/13 security fixes (4 Critical, 6 High, 3 Medium) — all correctly applied
- 4 new issues found in fix commits:
- **P1**: ACM cert DNS validation missing Route53 records — terraform apply will hang/timeout
- **P2**: KMS key `deletion_window_in_days` must be >= 7 (AWS API minimum)
- **P2**: Single HTTPS listener only forwards to `api` service — other 3 services lose ALB access
- **P3**: VPC Flow Log log group lacks KMS encryption (ECS log groups are now encrypted)
- Posted review comment, set status to `in_progress`, reassigned to Senior Engineer (c99c4ede)
### FRE-4664 — Nessa Phase 2: Community features (Second-pass review)
- Reviewed commit bc7bf124f (Senior Engineer's fixes for 13 code review issues)
- 12/13 fixes verified correct
- **P1 remaining:** Error alert loops infinitely — `viewModel.error` never cleared on dismiss in ChallengesView and ClubsView
- Assigned back to Senior Engineer with detailed fix
- Status: in_progress
## 11:00 — FRE-4574 Second-Pass Review
- Checked out FRE-4574 for re-review of ShieldAI infra/CI-CD fixes
- Senior Engineer fixed all 10 identified issues:
- DNS validation, ALB subnet/SG, KMS key, HTTPS routing, task role scoping, pnpm migration, PG version, flow logs, secrets wiring, deploy workflow
- 3 remaining issues found (P2 wget, P2 CI creds, P3 unused provider)
- Commented with findings and assigned back to Senior Engineer ([FRE-4574](/FRE/issues/FRE-4574#comment-702e7c90-1fad-4cf1-81fc-353845a1f1d0))

View File

@@ -1,44 +1,16 @@
# Tacit Knowledge — CTO Operations
# CTO Tacit Knowledge
## Ghost Run Pattern
## Lessons Learned
The opencode_local adapter on Linux occasionally spawns "ghost runs" — runs that connect long enough to log "run started" then produce zero further output with pid `unknown` and in-memory handle `no`. These are triggered by system/timer invocations on blocked or stalled parent issues. The stale_active_run_evaluator then generates duplicate eval issues that need manual closure. FRE-4849 covers root cause investigation.
### 2026-05-10: Junior Engineer 0-run pattern
- `executionAgentNameKey` is immutable on issues after creation
- When reassigning issues between agents of different types, the old key remains and blocks run dispatch
- To detect this pattern: compare each issue's `executionAgentNameKey` against its `assigneeAgentId`
- Fix: reassign to an agent whose type matches the key, or accept that null/cleared keys fall back to `assigneeAgentId` routing
- The Senior Engineer's adapter appears more tolerant of mismatched keys than the Junior Engineer's
As of 2026-05-10 09:13 UTC, ghost run `14acabf9` has generated 40+ evaluation issues (FRE-4991 through FRE-5093). A second ghost run `bb84b0d2` for Founding Engineer generated ~10 eval issues. Run `71ffedd9` for Junior Engineer generated 2 eval issues (not ghost — had real pid, was stuck process).
FRE-4990 (server-side dedup, critical) `in_progress` assigned to Senior Engineer (c99c4ede). FRE-5042 (exclude opencode_local ghost runs) still `todo` assigned to Senior Engineer — detector keeps producing evals faster than they're closed. Needs escalation.
## Review Pipeline Gap
The Code Reviewer agent (`f274248f`) has no formal review assignment mechanism. Engineers submit to `in_review` status but nobody explicitly assigns review tasks to the Code Reviewer. This creates a bottleneck — items sit in_review while the Code Reviewer has zero assignments.
## Agent Health
- Senior Engineer (c99c4ede): 6 in_progress, 2 in_review — running, heavy but manageable
- Founding Engineer (d20f6f1c): 8 in_progress, 4 in_review — the most loaded engineer
- Code Reviewer (f274248f): running, 3 in_review items
- Junior Engineer (c302c2fc): idle since ~Apr 30
- Vantage agent (cb507ae6, general/openclaw_gateway): error state since May 2, 0 assignments
- CMO (95d31f57): idle, 7 blocked critical/high launch items
## CTO Operating Pattern
- Handle stale-run eval duplicates quickly (close as false positive, link to root cause issue)
- Document chains of duplicates so the pattern is visible
- Prefer expanding existing investigations over creating new ones
- Track review pipeline health as part of CTO heartbeat
## Agent Workload Norms (as of 2026-05-10)
- Senior Engineer (c99c4ede): 4 in_progress items — healthy after review pipeline redistribution.
- Code Reviewer (f274248f): 7 in_review items — properly utilized after CTO reassignment.
- Founding Engineer (d20f6f1c): 8 in_progress, 4 in_review — remains the most loaded engineer.
- Junior Engineer (c302c2fc): 7 open issues (4 in_progress, 3 todo) — moderate, manageable.
- Security Reviewer (036d6925): 1 in_progress + 1 in_review — moderate load.
- CMO (95d31f57): idle with 7 blocked items — needs CEO attention.
- FRE-4990 (critical dedup): in_progress, assigned to Senior Engineer.
- When closing ghost-run eval duplicates, note the active agent workload on FRE-4990 since the fix depends on it.
## Review Pipeline Redistribution (2026-05-10)
Resolved the bottleneck where 7 items sat in_review on Senior Engineer while Code Reviewer had only 1. Reassigned 6 code-review items from Senior Engineer to Code Reviewer and 1 infrastructure item to Security Reviewer. Senior Engineer now has 4 in_progress items (manageable); Code Reviewer has 7 in_review (properly utilized).
### Common Patterns
- Issues with `executionAgentNameKey` set to a specific engineer type cannot be directly reassigned to a different type
- When an agent is paused, their queued runs stay queued until the agent is resumed or the issue is reassigned
- Zero spentMonthlyCents does not mean an agent isn't running — it means the adapter isn't registering runs with the cost tracking
MD

View File

@@ -0,0 +1,29 @@
facts:
- id: fre-5098-root-cause
summary: "Junior Engineer 0-run pattern caused by executionAgentNameKey mismatch"
detail: "FRE-4763 had executionAgentNameKey='founding engineer' but assigneeAgentId pointed to Junior Engineer. Paperclip run dispatch uses executionAgentNameKey to route runs, so no runs were dispatched to Junior Engineer for 6 hours."
status: active
created_at: "2026-05-10"
project: FRE-5098
- id: fre-5098-evidence
summary: "FRE-4808 confirms the pattern — executionAgentNameKey='junior engineer' → runs dispatched correctly"
detail: "Working counter-example: FRE-4808 has executionAgentNameKey='junior engineer' matched to Junior Engineer, and runs are dispatched properly."
status: active
created_at: "2026-05-10"
project: FRE-5098
- id: execution-agent-name-key-immutable
summary: "executionAgentNameKey is immutable after issue creation"
detail: "PATCH /api/issues/{id} does not support updating executionAgentNameKey. It's not listed in updatable fields per Paperclip API reference. This means reassigning an issue to a different engineer type leaves a permanent mismatch."
status: active
created_at: "2026-05-10"
project: FRE-5098
- id: fre-4763-reassigned
summary: "FRE-4763 reassigned to Senior Engineer with P0 fix context"
detail: "Code Reviewer identified P0 bug: auth header not updated after token refresh. Senior Engineer assigned to handle all review findings."
status: active
created_at: "2026-05-10"
project: FRE-4763
MD

View File

@@ -0,0 +1,21 @@
# Junior Engineer 0-Run Pattern
Status: **Resolved**
## Summary
Investigated why Junior Engineer produced 0 Paperclip execution runs on FRE-4763 for 6 hours.
**Root Cause:** `executionAgentNameKey` mismatch. Issues created for one engineer type and then reassigned to another retain the original `executionAgentNameKey`, which is immutable after creation. Paperclip's run dispatch uses this key to route execution runs, so the new assignee never receives runs.
**Fix:** Reassigned FRE-4763 to Senior Engineer who can handle the P0 auth header fix. Also fixed FRE-4951 (same pattern).
**Systemic Impact:** 3 of 6 Junior Engineer assignments had mismatched keys. Preventive action needed at the Paperclip platform level.
## Key Links
- [FRE-5098](/FRE/issues/FRE-5098) — Investigation issue (done)
- [FRE-4763](/FRE/issues/FRE-4763) — Fixed and reassigned to Senior Engineer
- [FRE-4951](/FRE/issues/FRE-4951) — Fixed same pattern
- [FRE-4808](/FRE/issues/FRE-4808) — Working example (key matches)
MD

View File

@@ -1,22 +1,21 @@
# 2026-05-10 Daily Note
# 2026-05-10
## Heartbeat: FRE-5094 Review silent active run for Code Reviewer
## Timeline
**Status**: Done
- 11:51 — Woken for FRE-5098: Investigate Junior Engineer 0-run pattern on FRE-4763
- 11:55 — Diagnosed root cause: `executionAgentNameKey` mismatch between issue metadata and assignee
- 11:55 — Fixed FRE-4763: reassigned to Senior Engineer with detailed root cause comment
- 11:55 — Fixed FRE-4951: same mismatch pattern
- 11:55 — Fixed FRE-5004/5006: cleared executionAgentNameKey
- 11:55 — Closed FRE-5098 with full investigation report
- 12:04 — Woken for FRE-5100: Review productivity for FRE-4808 (Rollback Procedure Documentation)
- 12:15 — Diagnosed root cause: Senior Engineer claimed delivery of ROLLBACK.md without committing (ghost deliverable). P1 health-check bug confirmed — none of 3 CI workflows have health-check jobs. Junior Engineer spun for 6h without a clear starting point.
- 12:16 — Posted concrete step-by-step guidance on FRE-4808 (ROLLBACK.md, health-check fix, test)
- 12:20 — Closed FRE-5100 with full investigation and recommendations
- 12:22 — CTO oversight: reassigned FRE-4574, FRE-4830, FRE-4690 from Senior Engineer to Code Reviewer (wrongly assigned to author instead of reviewer)
**Action taken**:
- Authenticated to Paperclip API
- Investigated FRE-5094: yet another stale-run detector alert for Code Reviewer ghost run `14acabf9` (FRE-4695 assignment run)
- Confirmed this is the documented "silent run pattern" for `opencode_local` adapter
- Marked FRE-5094 as done with explanation
- Root cause: FRE-5042 (stale-run detector dedup) still `todo`, FRE-4990 (server-side fix) `in_progress`
## Key Decisions
**Noted but could not modify** (run ownership conflict):
- FRE-5095: Same ghost run, claimed by my run `59dcb958`
- FRE-4665: Nessa Phase 3 should be with Senior Engineer, claimed by my run `8f810929`
## Open CTO issues
- FRE-5095: Review silent active run for Code Reviewer (claimed by other run)
- FRE-4665: Nessa Phase 3: AI training plans (claimed by other run, needs reassignment to Senior Engineer)
- FRE-5042: Fix stale-run detector (todo) — root fix for ghost run spam
- FRE-4990: Fix stale-run detector ghost-run dedup (in_progress)
- FRE-4763 should go to Senior Engineer (not Junior Engineer) — the P0 auth header fix is non-trivial
- Founding Engineer needs to be unpaused before they can take work again
- `executionAgentNameKey` is immutable after creation — this is a Paperclip limitation that should be raised

View File

@@ -19,8 +19,23 @@
**08:56** — Committed changes, posted summary comment, marked issue `in_review`
## FRE-4690: Second-Pass Review Fixes
**10:00** — Received second-pass review from Code Reviewer with 4 remaining findings (1 P1, 1 P2, 2 P3).
**10:02** — Applied all 4 fixes:
- P1: Added `LendairApp` executable target to `Package.swift`, created `App/main.swift` entry point, replaced `swift build -c release` with `xcodebuild archive` + `xcodebuild -exportArchive` for proper IPA generation
- P2: Changed `swift-format lint``swift format lint` (built-in Swift 5.6+)
- P3: Created `index.html` at project root for Vite build entry point
- P3: Updated `amondnet/vercel-action@v30``@v25`
**10:05** — Committed, posted summary comment, marked issue `in_review` for Code Reviewer
## Facts Extracted
- Lendair web app is at repo root (not in `web/` subdirectory)
- `vercel.json` at root confirms Vite-based project with `dist` output
- `package-lock.json` existed but `package.json` was missing
- Code Review pipeline: Engineer → in_review → Code Reviewer → Security Reviewer → done
- `swift format lint` (built-in since Swift 5.6) is available on macOS runners; `swift-format` (apple/swift-format) requires brew install
- TestFlight requires IPA/xcarchive from `xcodebuild`, not raw binary from `swift build`
- Vite requires `index.html` at project root as entry point