Complete productivity review FRE-4808, fix review pipeline assignments for 3 issues [FRE-5100]
This commit is contained in:
@@ -335,6 +335,38 @@ When you complete a code review:
|
|||||||
- Assigned back to Senior Engineer for fixes
|
- Assigned back to Senior Engineer for fixes
|
||||||
- Status moved to in_progress
|
- 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
|
### 2026-05-10 (Sunday) — FRE-4576 Review
|
||||||
|
|
||||||
**Issue**: FRE-4576 — ShieldAI Browser Extension (Phishing & Spam Protection)
|
**Issue**: FRE-4576 — ShieldAI Browser Extension (Phishing & Spam Protection)
|
||||||
|
|||||||
@@ -31,7 +31,8 @@ Review complete. Found 8 P1, 5 P2, 4 P3 issues. Original engineer agent deleted
|
|||||||
## Latest Actions (May 10)
|
## Latest Actions (May 10)
|
||||||
- FRE-4806: Second-pass review complete — 2x P1, 1x P2, 2x P3. Assigned back to Founding Engineer.
|
- 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-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
|
## Next Steps
|
||||||
- Await CTO reassignment on FRE-4473
|
- Await CTO reassignment on FRE-4473
|
||||||
- Await fixes from engineers on 12 outstanding reviews
|
- Await fixes from engineers on 13 outstanding reviews
|
||||||
|
|||||||
@@ -15,3 +15,28 @@
|
|||||||
- **FRE-4737** — No fixes, P0/P1/P2/P3 remain. Engineer deleted → CTO
|
- **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-4576** — No fixes, 3 P1/5 P2/3 P3 remain. Engineer deleted → CTO
|
||||||
- **FRE-4807** — Fixes verified, approved. No Security Reviewer → 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))
|
||||||
|
|||||||
@@ -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).
|
### Common Patterns
|
||||||
|
- Issues with `executionAgentNameKey` set to a specific engineer type cannot be directly reassigned to a different type
|
||||||
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.
|
- 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
|
||||||
## Review Pipeline Gap
|
MD
|
||||||
|
|
||||||
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).
|
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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**:
|
## Key Decisions
|
||||||
- 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`
|
|
||||||
|
|
||||||
**Noted but could not modify** (run ownership conflict):
|
- FRE-4763 should go to Senior Engineer (not Junior Engineer) — the P0 auth header fix is non-trivial
|
||||||
- FRE-5095: Same ghost run, claimed by my run `59dcb958`
|
- Founding Engineer needs to be unpaused before they can take work again
|
||||||
- FRE-4665: Nessa Phase 3 should be with Senior Engineer, claimed by my run `8f810929`
|
- `executionAgentNameKey` is immutable after creation — this is a Paperclip limitation that should be raised
|
||||||
|
|
||||||
## 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)
|
|
||||||
|
|||||||
@@ -19,8 +19,23 @@
|
|||||||
|
|
||||||
**08:56** — Committed changes, posted summary comment, marked issue `in_review`
|
**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
|
## Facts Extracted
|
||||||
- Lendair web app is at repo root (not in `web/` subdirectory)
|
- Lendair web app is at repo root (not in `web/` subdirectory)
|
||||||
- `vercel.json` at root confirms Vite-based project with `dist` output
|
- `vercel.json` at root confirms Vite-based project with `dist` output
|
||||||
- `package-lock.json` existed but `package.json` was missing
|
- `package-lock.json` existed but `package.json` was missing
|
||||||
- Code Review pipeline: Engineer → in_review → Code Reviewer → Security Reviewer → done
|
- 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
|
||||||
|
|||||||
Reference in New Issue
Block a user