platform open report reconciliation 2026 09 05 - manishiitg/agentworks GitHub Wiki
PLAT-291 reproduces successful finding persistence followed by automatic merging that deletes the returned public ID. The local repair reuses existing identities and retains aliases across merges. PUL-2F70A97F also contains the underlying LinkedIn invite-flow failure, so it is not closed and no backlog count changes.
PLAT-290 reproduces and fixes G26's PUL-07504731 through the registered tool: every probe now reads the current workspace plan instead of a stale controller cache. The exact SQLite report is resolved with prior records preserved; local tests pass, deployment unverified. 77 typed reports remain across 59 investigation groups; 43 of the original 120 are closed. The inventories below are historical snapshots.
PLAT-289 subsequently verified and closed all ten G09 research-folder reports, corrected three stale learning statements and added a real guarded file-write/readback test. The retained September 5 source packets and parent summary reconcile to 57 findings. 78 typed reports now remain open across 60 of the investigation groups below; 42 of the original 120 are closed. The 96-row inventory and earlier result below remain historical snapshots. Growth/drafts and generic cross-file validation are not included.
Compared all 96 remaining typed harness reports against the platform register and current source. Eight exact reports were resolved in SQLite and read-back verified with their resolution events, leaving 88 open. Across the earlier 24 closures and this eight, 32 of the original 120 are closed. New producing runs and deployment verification are not claimed.
The 96 reports form 67 investigation groups, of which 61 retain open reports. These are not counts of confirmed independent bugs: several groups are external, workflow-owned, partially covered, or unresolved. Grouping does not merge SQLite identities or erase observations.
- The original PLAT-072 cost fix is not sufficient: PUL-E2BACEEB carries explicit Aug 12 post-fix recurrence evidence in detail_json.
- PLAT-322 preserves the corrected diagnosis: the defensive tab-owner change does not explain the actual reported message-sequence incident.
- PLAT-066 explicitly leaves the Hetzner route-selection failure unresolved despite another workflow passing.
- PUL-C93522E5 refutes its original wrong-folder explanation but still alleges a premature validation gate; it is not simply a false report.
- get_plan_prompt_health currently reads approvedPlan unless nil; PUL-07504731 therefore has a plausible still-live stale-read path.
| Workflow | Finding | Ticket | Source/test evidence |
|---|---|---|---|
| build-in-public | PUL-0B679A3D | PLAT-198 / PLAT-240 | Retired verification-marker/allowlist path; no PULSE_VERIFICATION_JSON mechanism remains in Go. Applied-fix/no-later-verification tests and real MCP applied-fix closure test pass. |
| build-in-public | PUL-28FC41E1 | PLAT-214 | Current RecordPulseReviewFinding reloads exact identity on its write handle. TestPulseFindingIssueIDUpdateReloadsExistingStepFindingAcrossReviewerModule creates an unowned step concern then successfully attaches reviewer evidence without splitting identity. |
| PUL-517B83AD | PLAT-198 / PLAT-240 | The reported record_pulse_verification endpoint is retired. Current dispositions accept public issue identity and no-preexisting-attempt verification; applied-fix and no-attempt history tests pass. Historical scanner receipt is not rewritten. | |
| upwork | PUL-565F9ED1 | PLAT-206 / PLAT-258 | Both recorded halves covered: supplemental Fixer dispositions are accepted after terminal reviewer results; obsolete child-session pulse_review_log completion gate removed. Supplemental result and parent-run terminal/legacy-running-receipt tests pass. |
| upwork | PUL-E19F5F1B | PLAT-206 / PLAT-258 | Same-run supplemental Fixer dispositions are allowed after reviewer completion, with consistent state/audit and retained previous receipt history. Focused production-tool supplemental/correction tests pass. Old business fixes not reapplied. |
| upwork | PUL-D50AD8BC | PLAT-123 / PLAT-211 | Superseded tool-registration requirement: record_run_concern and normal CONCERNS scraping were intentionally retired from ordinary step tools. Current default and explicit step-tool exclusion tests pass; do not restore the obsolete tool. |
| upwork | PUL-7B849CC6 | PLAT-001 | Keyed human input is parsed strictly and copied into isolated per-step contexts; explicit single-step input wins. Current parser, unknown-ID, sibling isolation, map-copy and opening-prompt tests pass. No outward-producing replay was performed. |
| upwork | PUL-DD9EDE3C | PLAT-078 / PLAT-200 | Snapshot size is bounded with an incompleteness/recovery banner and full-result spill hook. Production spill uses the session-granted tool_output_folder. Browser oversized, virtual-tool spill and every-folder-guard grant tests pass. No live website scan was performed. |
Only run_concerns tracking status and appended platform_tracking_resolved events are changed. Every previous concern row and its typed detail snapshot are preserved in event metadata. Old module receipts, business data, workflows, and schedules are untouched. All new code from earlier batches remains local/uncommitted unless separately committed by its owner.
- Server: supplemental Fixer result/rejection tests, legacy-running-receipt and parent-run module validation tests, and TestPulseAppliedFixClosesThroughMCPBridge.
- Workflow: PulseFindingIssueID, AppliedFix, NoAttemptVerification, ChangedUnverified, RunConcernTool exclusion, ToolOutputFolder, message-sequence schema and managed DB guidance tests.
- Keyed inputs: TestParseWorkflowStepStringMap, TestExecutionContextForStep, TestUnknownWorkflowStepInputIDs and human-input opening-prompt tests.
- Browser + virtual tools: oversized/snapshot/spill tests.
- These local tests pass. They do not execute live posting, trading, browser-account workflows, or historical business repairs.
| Group | Reports | Related tickets | Disposition / next evidence |
|---|---|---|---|
| G01: Premature automatic final validation | PUL-C93522E5 | PLAT-189, PLAT-269 related | Original diagnosis corrected; unresolved. Finding detail disproves wrong output folder but reports the final-validation gate running before deliberate artifact promotion. Keep that actual timing allegation open. |
| G02: Required validator tool unavailable | PUL-C9BBCF01 | PLAT-125, PLAT-189 related | Workflow/tool contract unresolved. Step requires a registered validation execution without an exposed accessor. Verify current tool contract and authored instructions; automated final validation is not automatically the requested tool. |
| G03: Pulse verification path retired | PUL-0B679A3D, PUL-517B83AD | PLAT-198, PLAT-240 | Verified retired. Old marker allowlist and pending-attempt endpoint are gone; current disposition tests pass. |
| G04: Pulse Fixer terminal-result rejection | PUL-565F9ED1, PUL-E19F5F1B | PLAT-206, PLAT-258 | Verified fixed. Same terminal-result family; first report additionally included the now-retired child-session receipt checker. |
| G05: Step concern reviewer-identity reload | PUL-28FC41E1 | PLAT-214 | Verified fixed. Exact no-module step-concern update fixture passes. |
| G06: Retired ordinary-step concern tool | PUL-D50AD8BC | PLAT-123, PLAT-211 | Verified retired. Registration fix was later superseded by intentional removal. |
| G07: Keyed human input propagation | PUL-7B849CC6 | PLAT-001 | Verified fixed. Per-step copy/validation/prompt tests pass; deployment replay not claimed. |
| G08: Oversized snapshot recovery | PUL-DD9EDE3C | PLAT-078, PLAT-200 | Verified fixed. Bounded output, recovery guidance, spill and read grants verified. |
| G09: Substack durable research write contract | PUL-AB711AC1, PUL-01F790F3, PUL-5903292F, PUL-137C5EDF, PUL-22656D6C, PUL-F7B23729, PUL-9CE79401, PUL-32C03E39, PUL-B8FC2F51, PUL-224A1885 | PLAT-175, PLAT-221, PLAT-257 | Shared boundary; unresolved. Ten repeated reports about denied db/research packet writes. Some also try prohibited DDL. Compare stale workflow stores/contracts against supported db/assets before changing any grant; do not allow direct SQLite access. |
| G10: Substack durable growth write contract | PUL-CE5D7AFA, PUL-C00607A6 | PLAT-175, PLAT-257 | Shared boundary; unresolved. Both report db/growth denied; baseline report additionally alleges fabricated persistent_record success. Verify durable file existence, not just a success literal. |
| G11: Substack declared DB banner mismatch | PUL-B0C1585F | PLAT-175, PLAT-257 | Related but distinct; unresolved. Explicit broad db banner versus narrow effective grant; its own evidence distinguishes this from stale db/research instructions. Do not merge into research group. |
| G12: Shared workflow context read projection | PUL-8429C778, PUL-95D26C40, PUL-E923640D, PUL-B6864197 | PLAT-257, PLAT-261 | Partial coverage; needs reproduction. Four related soul/KB/learnings path denials. Current access resolver fixes do not prove the historical path-mapping failures are gone; inspect exact session grants and normalized path. |
| G13: DB README guidance versus authored contract | PUL-69B66D52 | PLAT-223 | Partial coverage; needs reproduction. Managed boilerplate has a describe fallback, but a workflow-authored mandatory read may remain. Guidance fix is not proof every required path is readable. |
| G14: DB query transport envelopes | PUL-25BDBC42, PUL-76F2EE72, PUL-A14F764F | No exact ticket; bridge guidance/test clarified | Suspected duplicates; unresolved. Native/MCP raw payload versus raw HTTP success/result is documented/tested. Historical reports claim identical call patterns; actual transport for each call remains unknown. |
| G15: Automatic eval trigger/producer consumption | PUL-86C0991B, PUL-09B52349, PUL-42742C7F | PLAT-075, PLAT-091 | Related symptoms; unresolved. Compare disable_eval, schedule route/group and finalization order. Upwork also requires an eval inside the producing run window, which may be an impossible workflow dependency; no blanket eval-trigger fix inferred. |
| G16: Missing Google Sheets capability | PUL-45906870, PUL-A9EE4AC3 | PLAT-087 related, not an exact fix | Suspected duplicate; unresolved. Same consolidate-prepare step and missing Sheets accessor. Verify workflow capability selection versus registered tools before calling it a platform defect. |
| G17: Scheduled occurrences not fired | PUL-24A93F72, PUL-0322D624, PUL-3E984942, PUL-A9401F93 | PLAT-041, PLAT-080, PLAT-145, PLAT-191 | Related symptoms; unresolved. Not proven one root: examine exact fire-decision records, downtime and lease collisions. New successful occurrences do not explain missing historical fires. |
| G18: Recovered tool errors promoted as intake findings | PUL-115F32AF, PUL-AAC278EF | PLAT-056, PLAT-127, PLAT-225 | Partial coverage; unresolved. Successful terminal state plus errored tools requires per-call recovery/side-effect evidence. Preserving tool output is not the same as fixing the intake classifier. |
| G19: Mutable run-folder evidence / retention | PUL-C1B267AB, PUL-1EE39C89 | PLAT-047, PLAT-089, PLAT-176, PLAT-242 | Related but distinct; unresolved. One recent overwritten failed attempt and one historical never-rotated schedule path. Wrong-run error attribution fix does not establish rotation/retention coverage. |
| G20: Mutable execution cost identity | PUL-E2BACEEB, PUL-8E22A469 | PLAT-072, PLAT-241 | Reopened/partial; unresolved. Build-in-public detail explicitly reports recurrence after PLAT-072 (Aug 12). Social-media embedded run_folder timing metadata is separately deferred in PLAT-241. Do not close from the old UUID fix. |
| G21: Reflection cost/metadata attribution | PUL-C4811EA4, PUL-F2B4C57F | PLAT-076, PLAT-166 | Partial coverage; unresolved. Execution/reflection separation exists, but these reports require immutable attribution and trustworthy historical contribution metadata. |
| G22: StockTwits upstream 403s | PUL-4CC6EAC4, PUL-74C2F334 | No repository fix established | External-service reports. Same third-party endpoint failure family; do not relabel upstream availability as a fixed platform bug. |
| G23: Browser tab churn and close failures | PUL-9694792A, PUL-62957A90 | PLAT-028, PLAT-235 related | Related symptoms; unresolved. Listing/close and creation/churn are not established one root. Capture owner, target ID, listing and action under the same CDP session. |
| G24: Pending decision orphan | PUL-C004DFAF | PLAT-021, PLAT-045, PLAT-077 related | Unresolved. Need legitimate dismiss/retire for an unlinked duplicate, without fabricating an answer. Existing linked-decision fixes alone are not enough. |
| G25: New finding success without persistence | PUL-2F70A97F | PLAT-214 related, not an exact fix | Unresolved. Different from cross-module reload failure: reports success with no rows. Trace the exact transport/workflow DB and persisted transaction. |
| G26: Stale plan prompt-health read | PUL-07504731 | New code evidence; no exact ticket match | Current code suspect. get_plan_prompt_health only reloads when approvedPlan is nil. A populated controller can retain old descriptions after another writer updates disk; keep open for an actual tool regression test. |
| G27: Tool index versus callable MCP surface | PUL-61347449 | PLAT-087, PLAT-244, PLAT-247 | Partial/retired subtools; unresolved. Some generation tools retired and read_image restored; this does not establish advertised/registered parity for all message-sequence child capabilities. |
| G28: Image absolute path normalization | PUL-8E45EDCB | PLAT-007, PLAT-247 | Post-fix recurrence; unresolved. Aug 22 recurrence postdates initial normalization work. Requires exact registered tool plus guard/path fixture; do not close from the original Aug 3 fix. |
| G29: Cross-workflow CDP tab quota | PUL-3DC592D9 | PLAT-322 | Explicitly partial; unresolved. Ticket preserves the corrected hypothesis and states it does not explain the actual message-sequence incident. Keep open despite defensive owner-ID tests. |
| G30: Tab-scoped network output | PUL-9CCE9488 | PLAT-224 | Third-party CLI defect. Already investigated as upstream agent-browser behavior. Remains tracked, not a repository fix. |
| G31: Missing run completion response | PUL-B898D60C | PLAT-103, PLAT-116, PLAT-179 | Related lifecycle fixes; unresolved. Need exact provider/session turn evidence to map the completed response to the no-response classifier. |
| G32: Route selection seeding | PUL-05A81CA0 | PLAT-066, PLAT-259 | Explicitly unresolved. PLAT-066 proves ordinary path works but explicitly leaves the reported Hetzner path unresolved. Routing redesign alone is not closure proof. |
| G33: Interrupted Pulse recovery | PUL-7AC95E26 | PLAT-065, PLAT-199, PLAT-258 | Partial coverage; unresolved. Report itself confirms old rows became failed, not perpetually running. Determine whether retained failed reviews actually reconcile before calling this closed. |
| G34: Finalizer watchdog before dispatch | PUL-7935F620 | PLAT-094, PLAT-095, PLAT-115 | Related lifecycle fixes; unresolved. Timestamp and turn identity must prove watchdog cannot terminal commands before their real finalizer starts. |
| G35: Stale schedule list projection | PUL-3565D07C | PLAT-080, PLAT-219 | Distinct from repaired child failure. get_schedule_runs and durable metadata agree, list_schedules disagrees. Closing PLAT-219 does not fix a separate list projection. |
| G36: Post-completion narration ungrounded | PUL-D0BAC922 | PLAT-076, PLAT-125 related | Agentic contract/evidence issue. Outputs were correct; inaccurate narration spans reflection/validation/contribution. No deterministic common repair confirmed. |
| G37: Host gh credential loss | PUL-54D7A9FC | No exact platform fix established | External/host configuration. Verify keyring/account selection; do not change credentials or claim provider outage fixed. |
| G38: Fallback configuration not applied | PUL-5D98671B | PLAT-011, PLAT-060 related | Current code needs verification. update_tier_fallbacks still exists and depends on tierResolver config. Explicit/profile configuration is a separate path; not retired and not safely closed. |
| G39: Second execution prepends output | PUL-4AD362CD | PLAT-023, PLAT-192 related | Unresolved. Need exact write tool and payload. General patch safety does not prove a replacement/prepend behavior changed. |
| G40: STEP_OUTPUT_DIR absent | PUL-15E18187 | PLAT-006, PLAT-062 related | Unresolved. Verify directory creation and path grant on the exact scripted/retry path; cwd fixes alone insufficient. |
| G41: Empty SQL validation contract | PUL-C2CF5E0B | PLAT-258 related | Workflow contract versus validator. Inspect current validation schema for missing SQL; do not attribute an invalid authored rule to SQLite engine behavior. |
| G42: Browser open without selecting tab | PUL-6C7B04E9 | PLAT-231 related | Caller contract/recovered. Reported call violates shared-CDP selection requirement and recovered. Leave historical classification unchanged until exact arguments confirm it is not recovery-ID loss. |
| G43: Upgrade broadcast steals scheduled turn | PUL-985F2597 | PLAT-095, PLAT-096, PLAT-245 | Related lifecycle fixes; unresolved. Verify broadcast injection path and exact originating turn; upgrade fencing alone is not proof schedule slot ownership is fixed. |
| G44: Ambiguous LinkedIn Connect text | PUL-B7F247D3 | PLAT-232 related | Website targeting contract. Repeated text belongs to distinct people; locator scoping is needed. No evidence platform can infer intended person from bare Connect. |
| G45: LinkedIn action lacks confirmation | PUL-D81BEA7D | PLAT-232 related | Website/action evidence. Click dispatch success is not connection success. Withholding unconfirmed business writes is correct; needs site-specific reproduction. |
| G46: Missing payroll data accessor | PUL-756634F2 | PLAT-087 related | Workflow capability/configuration. Required data source is not exposed; distinguish workflow configuration from runtime tool omission. No external DB access attempted. |
| G47: SQL JSON/local-date validation rejection | PUL-AE5325BD | PLAT-043, PLAT-126, PLAT-238 related | Unresolved exact SQL. Reported json_each/local-date query is not automatically fixed by PRAGMA or REGEXP support. Reproduce exact SQL/validator. |
| G48: Historical pricing basis missing | PUL-0A1AFAF8 | PLAT-008, PLAT-081, PLAT-203 | Historical evidence gap. New pricing coverage cannot reconstruct absent historical rate basis. Keep uncertainty explicit. |
| G49: Durable landed-content union unchecked | PUL-B20CB8E1 | No exact fix established | Evidence gap. Need retained query/tool failure for ledger half; current verified items alone do not prove union completeness. |
| G50: X reciprocal badge instability | PUL-007D74F8 | PLAT-232 related | Website state/targeting. Do not equate dispatch with durable relationship state or bypass confirmation. |
| G51: X following list scroll plateau | PUL-8526B265 | No exact repository fix established | Website/tool ambiguity. Separate actual viewport movement from page hydration. Related to, not proven same as Upwork scroll failure. |
| G52: Date-bound action queue empty read | PUL-F65412F5 | No exact fix established | Query/window evidence gap. Compare exact SQL parameters, timezone and transaction with authoritative row; empty query result alone not an engine bug. |
| G53: Drift merged-alias step mismatch | PUL-C28E9B78 | PLAT-198, PLAT-258 | Related identity work; unresolved. Canonical issue step attribution may not match checked step. Merged-alias reopening tests do not prove drift-receipt checker accepts correct canonical links. |
| G54: CDP endpoint unavailable | PUL-778F87BE | PLAT-248 related | Host availability/configuration. Browser skill registration does not make an unreachable port reachable; no browser restart attempted. |
| G55: Message-sequence output contract missing | PUL-3237C0D8 | PLAT-189, PLAT-269 | Likely covered; needs exact fixture. Current first-turn path appends schema and description, but delegated route opening path differs. Do not close on formatting helper tests alone. |
| G56: Post-completion human_feedback timeout | PUL-3792C10D | PLAT-139, PLAT-269 | Related lifecycle changes; unresolved. todo_task execution was consolidated; exact after-final-validation feedback timeout needs a regression fixture. |
| G57: Configured tier never selected | PUL-7FC528B9 | PLAT-060 related | Configuration/runtime comparison. Compare effective role/model selection with intended trial; zero Haiku usage alone cannot prove resolver failure. |
| G58: Shell stderr phrase misclassification | PUL-2E197257 | PLAT-193, PLAT-225 | Different error layers; unresolved. PLAT-193 fixes success/status JSON sniffing, not necessarily permission words in stderr. Preserve output and test exact classifier separately. |
| G59: Concurrent workflow dispatch misclassified | PUL-BB5E62C0 | No exact ticket; report points to PUL-371E722E | Ownership correction candidate. Text says workflow_issue but structured detail still says harness_issue. Do not mark the concurrency symptom fixed or merge without checking canonical issue. |
| G60: Server restart interrupts run | PUL-31203224 | PLAT-029, PLAT-095, PLAT-199 | Interruption/recovery evidence. Recorded restart and curl connection refusal are real interruption, not proof of a scheduler launch defect. Determine intended resume guarantees. |
| G61: Shell heredoc quoting failures | PUL-FBF1BE54 | PLAT-168 related | Caller/transport ambiguity. Need exact submitted command and actual shell bytes. Related quoting guidance is not a transport repair. |
| G62: Overhead cost buckets merged | PUL-A8AB0913 | PLAT-226 | Confirmed deferred. Ticket explicitly says missing session-kind attribution signal; cannot close from per-execution ledger isolation. |
| G63: Upwork feed hydration stall | PUL-76B0B278 | No exact repository fix established | External website behavior. Distinct from scroll command no-op; report notes skeleton content despite genuine navigation/recovery. |
| G64: Browser scroll reports success without movement | PUL-2E420094 | No exact repository fix established | Tool behavior needs reproduction. Its evidence distinguishes this from website hydration: eval movement hydrates successfully. Preserve as distinct root. |
| G65: Snapshot ref dictionary ordering | PUL-B2511806 | No exact repository fix established | Caller interpretation contract. Object-key order is not DOM sibling order. Verify parent-child evidence rather than deriving person identity from ref ordering. |
| G66: Search provider auth/output contract | PUL-169BD994 | PLAT-234, PLAT-246 related | Provider/configuration unresolved. Timeout guidance is not a fix for missing workspace auth or non-search output. Need declared capability and actual provider response. |
| G67: Successful retry retains failed run metadata | PUL-9C0D14D3 | PLAT-194, PLAT-219, PLAT-242 related | Distinct retry reconciliation. First attempt failed and later attempt completed at same schedule completion instant. Wrong-run folder attribution fixes do not prove retry can promote the durable outcome. |
Every report has one group. Closed means verified internal tracking closure, not deployed reproduction. All other statuses are retained in SQLite; suspected external/workflow ownership is only annotated here until verified.
| Workflow | Finding | Group | Tracking disposition | Last observation | Recorded symptom |
|---|---|---|---|---|---|
| build-in-public | PUL-E2BACEEB | G20 | Keep open: Reopened/partial; unresolved | 2026-08-12T22:51:38.269298Z | The cost-summary reader does not isolate the requested current execution when the canonical iteration/group folder is reused across scheduled runs. |
| build-in-public | PUL-0B679A3D | G03 | Resolve: verified fixed/retired | 2026-08-05T02:22:19.54204Z | The Pulse backend generated an empty trusted verification allowlist ([]) for review run 2026-08-05T02-12-47.459Z_schedule-cron--c2e7578f_1785895230524138000 module strategy_auditor, while the same backend's get_pulse_state(view=backlog) returned finding PUL-7D6D85D5 with fix attempt fix-8eadd0f9c81d7a00 in status awaiting_verification and disposition changed_unverified, so an arrived-evidence verification could not be emitted as a PULSE_VERIFICATION_JSON marker and the attempt will be re-presented as unverified next run. |
| build-in-public | PUL-28FC41E1 | G05 | Resolve: verified fixed/retired | 2026-08-11T22:32:01.438253Z | Issues created by record_run_concern carry no owning module (module=null, phase=execution/message-sequence/prevalidation). Calling record_pulse_finding with such a visible PUL id and a valid module fails every time with 'recorded Pulse finding could not be reloaded by its internal lifecycle identity'. Issues that carry an owning module accept the identical payload shape. The workflow supplied a valid request: the issue ids come verbatim from get_pulse_state(view='backlog'), and the same call succeeded on PUL-8345B30B, PUL-3A51BAD6, PUL-ABA4E91F, PUL-B3AC1AE3 and PUL-02BBF615 in the same session. |
| build-in-public | PUL-86C0991B | G15 | Keep open: Related symptoms; unresolved | 2026-08-12T22:41:30.938596Z | The framework did not run auto-evaluation after a successful workflow execution, leaving the only evaluation report stale across a changed route contract. |
| build-in-public | PUL-115F32AF | G18 | Keep open: Partial coverage; unresolved | 2026-09-03T22:31:01.793291Z | Pulse deterministic intake elevates recovered message-sequence child-tool errors without reconciling the exact execution terminal artifacts and durable side effects. |
| build-in-public | PUL-69B66D52 | G13 | Keep open: Partial coverage; needs reproduction | 2026-08-25T00:55:33.556428Z | Message-sequence Folder Guard access projection contradicts the declared database contract: step-reddit-scan-draft must read db/README.md, while the enforced read allowlist exposes only db/assets. |
| build-in-public | PUL-B898D60C | G31 | Keep open: Related lifecycle fixes; unresolved | 2026-08-31T02:22:00.231835Z | The shared scheduler terminal projection labels a response-bearing completed LinkedIn workflow as produced-no-response/orchestrator_agent_error, the same root previously proven on Reddit. |
| hetznerssh | PUL-05A81CA0 | G32 | Keep open: Explicitly unresolved | 2026-08-10T09:25:18.921232Z | route_selections passed to run_full_workflow no longer reach the routing step: the preseed file execution/run-remediation-route/route_selection.json is not written, so run-remediation-route silently falls back to default_route_id. |
| hetznerssh | PUL-7AC95E26 | G33 | Keep open: Partial coverage; unresolved | 2026-08-20T08:47:13.733012Z | Re-checked this pass: pulse_review_log currently has zero rows in status='running' (7 completed, 4 failed, 0 running). The three restart-interrupted attempts Gate referenced (2 on 2026-08-09, 1 on 2026-08-10) all show status='failed' with verdict='Pulse interrupted because the server restarted' rather than being stuck at 'running' in the retained snapshot -- meaning whatever detects the restart does eventually mark the row terminal (failed) rather than leaving it silently 'running' forever. I could not directly observe a live interruption window (this is a read-only, point-in-time query), so I cannot confirm or rule out a narrow race between a module's terminal pulse_module_audit receipt and its corresponding pulse_review_log row update during an actual interruption. |
| hetznerssh | PUL-24A93F72 | G17 | Keep open: Related symptoms; unresolved | 2026-08-20T08:47:13.632512Z | The primary recurring audit schedule (b2234610-e3a2-49dd-b406-855e4ee878a8, cron '0 9 * * 1' UTC, enabled=true, group production-server) silently skipped its 2026-08-17T09:00:00Z occurrence. schedule-runs.json shows no schedule-cron entry for b2234610 between the 2026-08-10T09:00:53Z cron run and now (2026-08-20); the only two 2026-08-18 executions of this schedule were schedule-manual (operator-triggered), and list_schedules reports the scheduler's own computed Next Run as 2026-08-24T09:00:00Z UTC -- jumping directly past 08-17 without ever firing it, even though the schedule config (cron expression, timezone, enabled flag) is valid and was not changed around that date. |
| PUL-C93522E5 | G01 | Keep open: Original diagnosis corrected; unresolved | 2026-08-11T09:12:14.827326Z | As filed, this issue claimed step-create-reel's validation_schema checks content_package.json in the wrong folder and that 'nothing in the plan copies or symlinks it up'. Both claims are disproven by the artifacts. planning/plan.json step-create-reel description (HARDENING 2026-05-20, item 5) explicitly instructs: 'After a successful delivery ... copy route-compile-package/content_package.json verbatim to $STEP_OUTPUT_DIR/content_package.json. Never synthesize a fallback package.' Item 4 further requires the promoted copy to be checked against durable terminal state (ready_to_post==true, finalized conformance passed, delivery_result.success==true, and a non-null posts.email_message_id) BEFORE promotion. The orchestrator followed this: route-compile-package wrote its copy at 14:14, delivery completed 14:16, and the identical 22786-byte file appeared under execution/step-create-reel/ at 14:18, after which the final-gate validation passed 60/60. The wasted attempts come from the platform's automatic_final_validation prevalidation phase evaluating $STEP_OUTPUT_DIR before the orchestrator has reached that deliberately-last action. Same root cause as retained bug_review F11 (recurring since 2026-07-24). | |
| PUL-8E45EDCB | G28 | Keep open: Post-fix recurrence; unresolved | 2026-08-22T17:38:29.487657Z | This finding was scoped to route-build-carousel with next_check gated on a carousel-format run. Today's run reproduced the identical defect in a different step on the reel pipeline: route-fix-illustrations' read_image call (PUL-1A9373A3) 'consistently rejected a valid full-absolute workspace-docs path with "must be a full absolute path... got relative path" (stripping the docs-root prefix internally before re-validating)'. This is independent of route-build-carousel and the carousel format, so the original next_check ('first producing run whose format_decision.final_post_format=carousel') is no longer the only or best reproduction path -- the defect is general to read_image path validation, reproducible on any route/format. | |
| PUL-61347449 | G27 | Keep open: Partial/retired subtools; unresolved | 2026-08-11T09:15:04.309152Z | The sub-agent session prompt lists workspace_advanced, workspace_browser and workflow_db with their full tool rosters, but at call time the servers have no registered tools and the call fails with 'tools_unavailable ... MCP server(s) [workspace_advanced workspace_browser] are configured but currently have zero registered tools (failed to start or connect)'. Four backlog issues are separate symptoms of this one defect: PUL-61347449 (generate_music unreachable in route-build-video), PUL-46E5BB12 and PUL-B9CA19CB (workflow_db unreachable, harness halves only), and today's new read_image unavailability inside route-generate-illustrations. Distinguish it from PUL-8E45EDCB, which is a different defect: there read_image WAS registered and rejected valid absolute paths as relative. For DB access a workflow-level workaround exists and works ($MCP_CUSTOM HTTP route; used by every route this run). For binary-output tools there is no equivalent, which is why the orchestrator had to generate the music bed itself. | |
| PUL-7935F620 | G34 | Keep open: Related lifecycle fixes; unresolved | 2026-08-11T09:50:30.541355Z | pulse_final_command_state for pulse_run_id=schedule-manual--bae435e5_1786432476119732000 shows backup/publish/notify all status=failed, started_at==finished_at==2026-08-11T09:48:06Z, reason='Finalizer ended without recording this command's outcome' -- a watchdog-authored row, not a real Finalizer attempt. This Finalizer turn is the first and only turn to call record_pulse_result(command=...) for this pulse run; the watchdog fired before it started, at a ~76s gap from the prior stage's own completion timestamp, which is implausibly short for a normal inter-turn scheduling delay and suggests either the watchdog timeout is too aggressive or it is not correctly anchored to 'Finalizer turn started' vs 'prior stage completed'. | |
| PUL-3DC592D9 | G29 | Keep open: Explicitly partial; unresolved | 2026-08-22T17:57:14.148453Z | Shared CDP browser tab cap (max 4 labeled tabs) is shared across unrelated concurrent workflows, so route-pick-topic can be blocked from ever creating a discovery tab when other workflows already hold the 4 slots. | |
| PUL-3565D07C | G35 | Keep open: Distinct from repaired child failure | 2026-08-06T15:48:38.48465Z | list_schedules reports the completed 2026-08-06 Engage run as still running and leaves next_run in the past, while get_schedule_runs and run_metadata both record success. | |
| PUL-517B83AD | G03 | Resolve: verified fixed/retired | 2026-08-27T12:16:56.604895Z | Pulse lifecycle identity and pending-attempt resolution still reject a matured passed verification for an active public issue. | |
| latency-report | PUL-D0BAC922 | G36 | Keep open: Agentic contract/evidence issue | 2026-08-12T02:02:55.667345Z | ONE root cause, not six bugs: the platform's post-completion narration turns are not grounded in the step's produced artifacts. In every instance the step's actual output was CORRECT -- the JSON, the DB rows and the delivery ledger were all right. Only the narration describing that output was wrong, and it was wrong in the specific direction of inventing plausible round numbers and states rather than reading the file. This spans three distinct turn types (scripted-step reflection, message_sequence automatic_final_validation repair, learnings-contribution), which is why it cannot be attributed to any single step's prompt. Verified instances: (1) step-ingest-notion-feedback repair-1 claimed 16 tickets/1 new comment; notion_feedback.json says tickets_scanned=30, new_comments=4. (2) step-daily-latency-collect-prod-voice reflection claimed 32 turns/4 sessions/100% English; prod_voice_metrics.json says total_turns=67, total_sessions=1, by_language hebrew=67, english=0. (3) step-daily-latency-collect-dev-voice reflection claimed 64 turns/4 sessions/full coverage; dev_voice_metrics.json says total_turns=0, total_sessions=0, low_traffic=true -- a genuine zero-traffic day narrated as a busy one. (4) step-daily-digest-email's final repair-1 notification claimed digest_delivery.json shows status=dry_run and no delivery was attempted, consistent with DIGEST_DELIVERY_MODE=dry-run; variables.json sets DIGEST_DELIVERY_MODE=live and digest_delivery.json shows delivered=true/status=delivered/sent_at=2026-08-12T06:39:30Z. This one is a full fabrication of both the variable and the artifact. (5) step-daily-security-sweep's learnings-contribution turn claimed to have ADDED two false-positive classes (regex.exec, CloudFormation SecurityGroupEgress); both are dated 'Verified 2026-08-11' in learnings/_global/references/security-sweep.md and pre-date the run -- notably the turn DID add two genuinely new 2026-08-12-dated entries, so the work was real and only the attribution was invented. (6) step-daily-security-sweep filed a record_run_concern asserting a knowledgebase READ-access prompt/guard contradiction, quoting prompt text that does not exist (rejected this pass as PUL-79A4C2F8 with the rendered-prompt evidence). |
| latency-report | PUL-25BDBC42 | G14 | Keep open: Suspected duplicates; unresolved | 2026-08-13T06:10:20.716345Z | query_workflow_db returns inconsistent response shapes across calls in the same run - sometimes the parsed {columns,rows} object directly, sometimes a double-encoded {success:true, result:""} wrapper - for the same action=query call shape |
| latency-report | PUL-54D7A9FC | G37 | Keep open: External/host configuration | 2026-08-18T23:46:45.765539Z | gh CLI host keyring loses/omits the mpexample account between runs, silently reducing GitHub org visibility to ~1 public repo |
| latency-report | PUL-5D98671B | G38 | Keep open: Current code needs verification | 2026-08-25T05:15:48.120222Z | update_tier_fallbacks silently no-ops under the workflow's current provider_profile llm_config shape. The real per-role fallback mechanism is set_workflow_llm_config(mode=explicit, ...), which a prior Pulse session found returned ACCESS DENIED. |
| latency-report | PUL-4AD362CD | G39 | Keep open: Unresolved | 2026-08-21T00:35:49.467435Z | A second, tool-outage-degraded execution pass of step-daily-latency-report persisted output by prepending it to existing good files instead of replacing them. |
| latency-report | PUL-15E18187 | G40 | Keep open: Unresolved | 2026-08-27T23:58:18.785684Z | step-daily-sprint-progress previously crashed writing sprint_progress.json to STEP_OUTPUT_DIR with FileNotFoundError even though the folder is documented as pre-existing |
| salesoutreach | PUL-C2CF5E0B | G41 | Keep open: Workflow contract versus validator | 2026-08-24T11:25:00.707818Z | The automatic_final_validation gate for step-check-email-infrastructure has a db validation rule with an empty/missing sql query, so the gate fails unconditionally regardless of the actual state of the tables the step writes to. |
| salesoutreach | PUL-6C7B04E9 | G42 | Keep open: Caller contract/recovered | 2026-08-29T12:28:21.643679Z | agent_browser open called before selecting/creating a CDP tab ("CDP shared-browser mode requires selecting or creating a tab before open") recurred once in step-research-and-draft-outreach iteration-1 on the 2026-08-28 run; the agent recovered within the same iteration. |
| salesoutreach | PUL-985F2597 | G43 | Keep open: Related lifecycle fixes; unresolved | 2026-08-26T15:12:00.001785Z | A platform contract-upgrade broadcast is able to occupy a scheduled cron-triggered workshop sessions turn slot ahead of that schedules own configured message, causing the schedules real work to never execute and the run to time out and error instead. |
| salesoutreach | PUL-C1B267AB | G19 | Keep open: Related but distinct; unresolved | 2026-09-04T04:37:49.53588Z | Run folders are overwritten in place rather than rotated per completed run. Previously this caused stale old-failure metadata to resurface in deterministic scans (dubai-real-estate). Here the flip side occurred: a genuinely new failed run (manual verification run, started 2026-09-03T16:33:15Z, failed 16:51:22Z, ~18min, not a cron schedule) reached steps 1-4 successfully then failed at/after step-prepare-linkedin-engagement, but ALL evidence for that step (execution/ and logs/.../execution/ artifacts) was overwritten in place ~11.5h later by todays successful schedule 2d8c4f44 run (087289e4, 2026-09-04T04:00:26-04:23:52Z, status=success, covers usa-professional-services), before Technical Review could inspect why the original run failed. |
| salesoutreach | PUL-AAC278EF | G18 | Keep open: Partial coverage; unresolved | 2026-09-01T11:47:29.577853Z | Deterministic-intake runtime_status_disagreement signals (completed runs with nonzero tools.errored_count) recur across multiple steps/runs; each instance needs to be checked for real data-integrity impact rather than assumed benign. |
| salesoutreach | PUL-B7F247D3 | G44 | Keep open: Website targeting contract | 2026-08-28T04:23:26.402287Z | LinkedIn profile UI has duplicate visible-text ("Connect") controls in the same viewport -- the target person's own Connect option (inside their top-card More menu) and unrelated sidebar "Invite X to connect" suggestions -- so a text-based DOM query for a button/link with exact innerText "Connect" is ambiguous and can click the wrong person's control. |
| salesoutreach | PUL-2F70A97F | G25 | Keep open: Unresolved | 2026-08-31T04:51:35.046592Z | Retry of the identical record_pulse_finding call whose first attempt (this same pass) returned a success envelope (issue_id PUL-7AC60412, status open) but persisted no row in pulse_finding_details, pulse_finding_events, or run_concerns for that issue_id -- confirmed by direct query immediately after. Retrying to determine whether this was a one-off transient or a reliable non-persistence pattern for issue_kind=harness_issue plus a populated reproduction object. |
| salesoutreach | PUL-D81BEA7D | G45 | Keep open: Website/action evidence | 2026-08-31T11:27:34.809419Z | Recurring LinkedIn UI unreliability: the plain-connect click via profile More > Connect menuitem produces no observable success signal (no dialog, no confirmation), so the agent correctly withholds the outreach_activity write per the never-fabricate-unconfirmed-action rule, but this means real connection_request throughput is silently near-zero across runs even though the step logic is correct. |
| sheet-analysis | PUL-45906870 | G16 | Keep open: Suspected duplicate; unresolved | 2026-08-21T12:11:22.348247Z | consolidate-prepare step has no Google Sheets access tool (no google_sheets MCP server, no browser tool) registered for its session |
| sheet-analysis | PUL-A9EE4AC3 | G16 | Keep open: Suspected duplicate; unresolved | 2026-08-21T12:13:49.738936Z | consolidate-prepare step has no Google Sheets MCP tool registered in its session, so it cannot perform any of the required live Sheets reads/writes |
| sheet-analysis | PUL-756634F2 | G46 | Keep open: Workflow capability/configuration | 2026-08-21T13:58:46.248868Z | verification step tool set lacks any accessor for public.historical_payroll_snapshots / public.payslips required by the Salary and financial summary section |
| social-media | PUL-AE5325BD | G47 | Keep open: Unresolved exact SQL | 2026-08-19T07:35:54.545544Z | The managed DB validator rejects the exact profile-conversion validation SQL using json_each and local-date evaluation even after the required signal is persisted. |
| social-media | PUL-8E22A469 | G20 | Keep open: Reopened/partial; unresolved | 2026-08-20T17:05:15.468579Z | Cost attribution remains keyed by mutable run-folder identity rather than an immutable execution identity, even when archived folder summaries differ correctly. |
| social-media | PUL-C4811EA4 | G21 | Keep open: Partial coverage; unresolved | 2026-08-20T17:10:13.248453Z | Reflection usage remains unattributed to immutable executions, so its cost and contribution yield cannot be judged. |
| social-media | PUL-0A1AFAF8 | G48 | Keep open: Historical evidence gap | 2026-08-20T17:10:13.531807Z | Pre-2026-07-28 ledgers remain incomparable with current cache-priced ledgers because historical pricing basis is absent. |
| social-media | PUL-B20CB8E1 | G49 | Keep open: Evidence gap | 2026-08-21T22:16:53.937159Z | The durable-ledger half of the required landed-content union could not be independently checked; the report relied on verified current-run items. |
| social-media | PUL-007D74F8 | G50 | Keep open: Website state/targeting | 2026-08-22T13:35:55.090765Z | X reciprocal-follow badge state can be inconsistent across the unfollow flow and permit a temporary unfollow before the relationship is restored |
| social-media | PUL-8429C778 | G12 | Keep open: Partial coverage; needs reproduction | 2026-08-25T08:48:17.533007Z | Runtime path guard denies workflow-context reads during target-reply execution despite the step declaring those context roots readable |
| social-media | PUL-C9BBCF01 | G02 | Keep open: Workflow/tool contract unresolved | 2026-08-25T09:58:17.858887Z | The execute-verify step requires one registered validation run, but no registered validator tool is exposed in the session. |
| social-media | PUL-8526B265 | G51 | Keep open: Website/tool ambiguity | 2026-08-25T10:15:21.106121Z | X following-list scrolling can plateau at only the first 10 oldest-available rows despite continued scrolling |
| social-media | PUL-09B52349 | G15 | Keep open: Related symptoms; unresolved | 2026-09-02T04:32:48.026243Z | A current measure producer exists and the evaluator is correctly route-scoped, but no natural evaluation execution has consumed it. |
| social-media | PUL-95D26C40 | G12 | Keep open: Partial coverage; needs reproduction | 2026-08-26T15:45:09.675574Z | Declared mandatory reads for soul, knowledgebase context, and db README cannot be completed under the active folder guard |
| social-media | PUL-F65412F5 | G52 | Keep open: Query/window evidence gap | 2026-08-26T16:00:11.898708Z | The initial bounded current-cycle action_queue reconciliation query returned no rows even though the authoritative date-bound queue row was readable for refresh |
| social-media | PUL-E923640D | G12 | Keep open: Partial coverage; needs reproduction | 2026-08-27T07:50:10.19017Z | Direct reads of allowed workflow soul, knowledgebase, and learnings paths can be denied by runtime path mapping during an execution step. |
| social-media | PUL-C28E9B78 | G53 | Keep open: Related identity work; unresolved | 2026-08-31T16:45:22.945306Z | PUL-75A58FDA was merged into PUL-A6A7E11E, but record_plan_drift_review rejects the canonical issue for step-0-browser-router while record_pulse_finding refuses to reopen the merged exact-step alias. |
| substack | PUL-CE5D7AFA | G10 | Keep open: Shared boundary; unresolved | 2026-09-01T04:47:46.00929Z | Real, currently-active recurrence of closed/suppressed PUL-CE5D7AFA: step-growth-baseline's enforced session Folder Guard excludes db/growth/ from writable paths, contradicting its own step-description contract ("Also write the same record to db/growth/YYYY-MM-DD-baseline.json. Create db/growth if needed"). The step silently emitted a fabricated persistent_record success literal ("db/growth/2026-09-01-baseline.json") when the real write was denied, and the automatic pre_validation only checks the local execution-folder copy, not the durable db path, so the false-success claim goes undetected by normal validation. |
| substack | PUL-AB711AC1 | G09 | Keep open: Shared boundary; unresolved | 2026-08-24T02:53:07.179289Z | step-check-reddit is instructed to write the durable dated packet to db/research/YYYY-MM-DD-reddit.json, but this step's folder guard excludes db/research/ from Allowed WRITE, and mutate_workflow_db explicitly rejects the CREATE TABLE needed to establish a new per-date reddit table ('schema changes use workflow migrations'). |
| substack | PUL-01F790F3 | G09 | Keep open: Shared boundary; unresolved | 2026-08-24T02:53:27.290047Z | step-check-hn folder guard denies write access to db/research/ entirely, so the durable HN packet the step contract requires (db/research/YYYY-MM-DD-hackernews.json) can never actually be created by this step, even though the automatic validator only checks literal string values inside hn_findings.json persistent_record and therefore passes anyway |
| substack | PUL-5903292F | G09 | Keep open: Shared boundary; unresolved | 2026-08-24T03:02:01.102927Z | step-check-x cannot write to db/research/ despite its declared output contract and the final-validation regex requiring a db/research/ path |
| substack | PUL-C00607A6 | G10 | Keep open: Shared boundary; unresolved | 2026-08-24T04:59:20.346143Z | step-post-standalone-note reflection-turn description requires writing db/growth/YYYY-MM-DD-standalone-note-cadence.json, but the step folder guard never grants write access to db/growth/ for this route |
| substack | PUL-137C5EDF | G09 | Keep open: Shared boundary; unresolved | 2026-08-25T02:51:04.500319Z | step-check-hn cannot durably write db/research/YYYY-MM-DD-hackernews.json: the folder guard denies shell writes and diff_patch_workspace_file writes under db/research/, and mutate_workflow_db rejects CREATE TABLE for a same-dated mirror table with 'schema changes use workflow migrations', so the step-authored durable packet never lands in the persistent store. |
| substack | PUL-22656D6C | G09 | Keep open: Shared boundary; unresolved | 2026-08-25T02:55:17.177094Z | step-check-x (X/Twitter research sub-agent) is instructed to write db/research/YYYY-MM-DD-x_twitter.json directly, but its folder-guard write scope never includes db/research/, only its own step folder, Downloads, db/assets, and learnings/_global. |
| substack | PUL-F7B23729 | G09 | Keep open: Shared boundary; unresolved | 2026-08-27T02:50:22.607122Z | step-check-hn folder guard denies write access to db/research/, blocking the sub-agent from materializing its own durable YYYY-MM-DD-hackernews.json packet |
| substack | PUL-9CE79401 | G09 | Keep open: Shared boundary; unresolved | 2026-08-27T02:50:28.355406Z | Reddit source-research sub-agent write scope excludes db/research/, so the durable per-date research packet cannot be materialized directly by this step |
| substack | PUL-32C03E39 | G09 | Keep open: Shared boundary; unresolved | 2026-08-27T02:56:14.103326Z | Source-research sub-agent step folder guards exclude db/research/ from Allowed WRITE, but orchestrator/step instructions and stores.md still direct sub-agents to write durable packets directly to db/research/YYYY-MM-DD- |
| substack | PUL-9694792A | G23 | Keep open: Related symptoms; unresolved | 2026-08-27T02:56:28.949611Z | agent_browser 'tab close ' fails to close a tab that the immediately-preceding 'tab' (no args) listing confirmed as active and owned by this route's own label |
| substack | PUL-B8FC2F51 | G09 | Keep open: Shared boundary; unresolved | 2026-08-27T02:59:08.982658Z | Source-research sub-agent routes (reddit/x_twitter/hackernews/websearch) folder guard denies direct writes to db/research/, forcing them to write a fallback copy to db/assets/ and set persistent_record success literals before the file exists at its documented db/research/ path. |
| substack | PUL-3237C0D8 | G55 | Keep open: Likely covered; needs exact fixture | 2026-08-27T04:58:51.599984Z | Execution-turn prompt for step-connect-creators shows only the output filename, not the step description own detailed Output connect_result.json required-field list, so pre-validation fails on the first pass for fields never surfaced at execution time. |
| substack | PUL-778F87BE | G54 | Keep open: Host availability/configuration | 2026-08-28T02:57:23.995451Z | agent_browser CDP (port 9222) unreachable, forcing an undocumented RSS fallback |
| substack | PUL-224A1885 | G09 | Keep open: Shared boundary; unresolved | 2026-08-28T03:00:29.681392Z | step-check-hn's enforced write allowlist excludes db/research, but its own hn_findings.json validation gate requires persistent_record.path to literally match db/research/YYYY-MM-DD-hackernews.json with status 'exists' and verified_after_write 'yes' |
| substack | PUL-3792C10D | G56 | Keep open: Related lifecycle changes; unresolved | 2026-08-31T03:08:49.847507Z | todo_task orchestrator finalization can (intermittently) report execution status=failed via a post-completion human_feedback timeout even when the orchestrators own work and final-gate validation already passed cleanly. |
| substack | PUL-B0C1585F | G11 | Keep open: Related but distinct; unresolved | 2026-09-01T04:21:26.887043Z | Runtime ACCESS DENIED: writable folders for this session were only step-write-article, Downloads, db/assets, and /Users/mipl/Downloads -- db/drafts/ was excluded despite the banner claiming db. get_step_prompts(step-publish) shows the identical generic 'Allowed WRITE: ... db' banner text, so this is not a step-description problem; it is a declared-vs-enforced ACL mismatch in the platform harness. Distinct from PUL-32C03E39/PUL-AB711AC1 (db/research/, consistently narrow-by-design, no declared-grant contradiction, fixed by redirecting stale step text to the already-real db/assets/research/ location). db/drafts/ is not stale or dead -- 7 other drafts (some published with real Substack post IDs) already live there and step-publish/step-revise-draft depend on that exact location, so redirecting the canonical path was rejected as disproportionate for this pass. |
| tectonicusadaytrading | PUL-7FC528B9 | G57 | Keep open: Configuration/runtime comparison | 2026-08-20T20:38:22.796701Z | Configured claude-haiku-4-5-20251001 tier trial for daily-signals still shows zero usage; every step across all 4 execution ledgers for 2026-08-20 ran on claude-sonnet-5 only. |
| tectonicusadaytrading | PUL-2E197257 | G58 | Keep open: Different error layers; unresolved | 2026-08-14T17:25:36.594095Z | execute_shell_command classifies a call as failed based on stderr content (permission/authorization-denial phrases) even when the underlying script completed successfully and its DB write landed, giving no stdout/stderr back to the caller |
| tectonicusadaytrading | PUL-0322D624 | G17 | Keep open: Related symptoms; unresolved | 2026-08-17T20:10:36.175455Z | BOUNDARY REACHED AND WORSE THAN RECORDED: the close pass did not merely execute canceled turns, it did not fire at all on 2026-08-17 - the third consecutive weekday no-fire. |
| tectonicusadaytrading | PUL-BB5E62C0 | G59 | Keep open: Ownership correction candidate | 2026-08-17T20:07:26.950723Z | The second collect_social.py execution was not an execute_shell_command retry: it was a second, concurrent daily-signals orchestrator dispatching collect-social into the same run folder. Reclassifying from harness_issue to workflow_issue and attaching it to PUL-371E722E. |
| tectonicusadaytrading | PUL-31203224 | G60 | Keep open: Interruption/recovery evidence | 2026-08-18T17:15:37.134984Z | schedule-runs.json records the 2026-08-18T15:00:26Z run of schedule 9db4dc39 as status='error' with the platform-authored message 'interrupted: server restarted' and duration_ms=null. The identical record exists for 2026-08-12T13:55:56.256Z on the same schedule. During the restart window the bridge daemon at 127.0.0.1:18743 stopped listening, which is what collect-price's curl exit 7 'after 0 ms' actually measured. |
| tectonicusadaytrading | PUL-4CC6EAC4 | G22 | Keep open: External-service reports | 2026-08-20T18:00:45.194843Z | StockTwits RapidAPI (stocktwits.p.rapidapi.com) intermittently returns HTTP 403 (curl exit 56, non-Cloudflare) for a double-digit fraction of the 19-symbol watchlist within collect_social.py, with a different symbol subset failing each occurrence |
| tectonicusadaytrading | PUL-74C2F334 | G22 | Keep open: External-service reports | 2026-08-21T16:19:09.542256Z | StockTwits RapidAPI stream endpoint intermittently returns HTTP 403 (curl exit 56, non-Cloudflare) for a large fraction of watchlist symbols per run, independent of the User-Agent/curl fix already in place |
| tectonicusadaytrading | PUL-3E984942 | G17 | Keep open: Related symptoms; unresolved | 2026-08-26T20:51:44.473679Z | 9db4dc39 intermittently fails to fire all 3 scheduled slots on a given day, no backfill; owner=platform, external_action_required. |
| tectonicusadaytrading | PUL-FBF1BE54 | G61 | Keep open: Caller/transport ambiguity | 2026-08-27T20:47:36.080886Z | iteration-130 (2026-08-27, first-of-day fire): daily-signals timing.json shows 19 of 47 tool calls errored, 11 of which are execute_shell_command heredoc-drafting attempts that fail with exit_code=2 specifically when the body text contains an apostrophe, an ampersand (nohup ... AND background operator), or an embedded quoted substring (a literal semicolon-true fragment). The orchestrator converges on a working phrasing only after removing every such character from the composed instructions text, at call 43 of 47. |
| upwork | PUL-7B849CC6 | G07 | Resolve: verified fixed/retired | 2026-08-03T04:51:49.879299Z | run_full_workflow dropped the search-find-and-shortlist human_inputs override, so the Aug 3 search scanned Most Recent despite an explicit two-feed run limit |
| upwork | PUL-DD9EDE3C | G08 | Resolve: verified fixed/retired | 2026-08-07T17:16:03.820207Z | agent_browser snapshot results continue to overflow the tool-result size limit post-v1.0.21-purification (toptal-scan-jobs 68,223 chars, search-find-and-shortlist 130,705 chars on 2026-08-07), and the spilled-result fallback read also fails as outside every workspace root. learnings/_global/SKILL.md's 'read a slice' rule covers reference files and shell output but has no snapshot-scoping recipe. |
| upwork | PUL-42742C7F | G15 | Keep open: Related symptoms; unresolved | 2026-08-24T18:14:37.837724Z | bid-pick-job skip_reason closed-vocabulary compound boundary clause (b) requires a fresh eval_results row for group_name=daily-bid, step_id=eval-bid inside a daily-bid runs own window. Checked after the 2026-08-24T15:58-16:35Z daily-bid run: the newest eval_results row for group_name=daily-bid, step_id=eval-bid is still generated_at=2026-08-21T21:54:33+05:30, unchanged since before the prior check on 2026-08-17. Clause (b) has now failed to mature across at least 4 subsequent daily-bid runs (2026-08-22, and 2x 2026-08-24), consistent with the already-cross-referenced platform eval-trigger gap (PUL-E67413EC). |
| upwork | PUL-F2B4C57F | G21 | Keep open: Partial coverage; unresolved | 2026-08-17T19:43:02.537929Z | Unchanged root, re-open condition CHECKED this pass and NOT met. The recorded re-measurement stands: the missing-metadata half is a harness measurement gap the workflow cannot write, not a contribution-yield problem. |
| upwork | PUL-D50AD8BC | G06 | Resolve: verified fixed/retired | 2026-08-12T09:18:04.849572Z | record_run_concern is not registered in the step-runner tool profile, so a step that discovers a durable engineering defect mid-run has no way to file it and must downgrade the finding to a free-text CONCERNS line. |
| upwork | PUL-A8AB0913 | G62 | Keep open: Confirmed deferred | 2026-08-12T17:45:54.499724Z | Recording the change so a future Ops pass does not re-derive a claim that is now half wrong. costs/execution/ungrouped/2026-08-12.json is no longer a single date-wide blob - it holds 2 discrete execution records, each with its own execution_id, token_usage.created_at and attribution rows. Per-execution isolation therefore now works. What has NOT changed is the finding's core claim: both records attribute 100% of spend to a single 'workflow_orchestrator:workflow_orchestrator' bucket, so orchestrator, builder and Pulse cost remain indistinguishable. The 17:25:31Z record is this Pulse pass's own $36.12 landing in the orchestrator bucket, which is exactly the conflation described. Suppression stands - the reopen condition (separable buckets) is not met. |
| upwork | PUL-76F2EE72 | G14 | Keep open: Suspected duplicates; unresolved | 2026-08-19T18:19:59.629432Z | The managed query_workflow_db tool returns two different JSON shapes for the same call pattern -- a flat {columns,rows} shape and a wrapped {success,result:''} shape -- with no documented trigger, and only one workflow step's own retry loop currently defends against it. |
| upwork | PUL-A14F764F | G14 | Keep open: Suspected duplicates; unresolved | 2026-08-29T18:13:47.504804Z | query_workflow_db still returns both flat columns/rows and wrapped success/result envelopes for valid read calls, so callers cannot rely on one declared response shape. |
| upwork | PUL-76B0B278 | G63 | Keep open: External website behavior | 2026-08-20T15:52:01.679773Z | Upwork's find-work feed tabs (Best Matches, Most Recent, My Feed) repeatedly hydrate only ~2 of the ~21-40 rendered card DOM slots into real content; the rest remain 4-character skeleton placeholders even after every documented recovery technique. |
| upwork | PUL-62957A90 | G23 | Keep open: Related symptoms; unresolved | 2026-08-22T18:36:05.159301Z | Single occurrence in a busy shared-CDP session with rapid tab churn; plausibly a race between tab creation and id reassignment rather than a persistent defect. No workflow-side fix exists since this is agent_browser tool behavior, not plan.json/step_config. |
| upwork | PUL-2E420094 | G64 | Keep open: Tool behavior needs reproduction | 2026-08-23T18:40:00.392485Z | Judged distinct from the existing browser-hydration-stall root cause: PUL-8DC7E43C (target_key upwork.com:find-work-feed-tab-virtualization, already linking recurrences PUL-76B0B278 and PUL-832D635C) describes Upwork's OWN virtualization failing to hydrate cards even after genuine scroll/reload/fresh-navigation -- an external, Upwork-side stall. This finding's root cause is different and narrower: the agent_browser TOOL's own scroll command reported success without actually moving the viewport at all; when the viewport genuinely moved (via the eval fallback), Upwork hydrated fully and immediately. That is the opposite failure mode from PUL-8DC7E43C's persistent stall despite real scrolling, so this is not the same root cause and should not be merged into it. It also surfaces a real self-contradiction inside the shared learnings file: the 2026-08-08 entry in learnings/_global/references/selectors.md states the dedicated scroll command reliably hydrates while eval scrollBy does not; this run found the exact opposite. The file was amended 2026-08-22 to document both outcomes and a verify-then-fallback decision rule, but the underlying tool behavior itself (why scroll silently no-ops in some sessions) remains unresolved and unowned by any workflow tool. |
| upwork | PUL-A9401F93 | G17 | Keep open: Related symptoms; unresolved | 2026-08-27T18:14:33.618612Z | The intermittent scheduler-silent-skip root remains unclosed, but 2026-08-27 produced real schedule-run records and retained run folders for both affected schedules, so the current failures are not silent skips. |
| upwork | PUL-C004DFAF | G24 | Keep open: Unresolved | 2026-08-22T18:57:49.010951Z | Duplicate pending decision card for the same strategic question, and no tool exists to retire the unlinked orphan without fabricating an answer. |
| upwork | PUL-565F9ED1 | G04 | Resolve: verified fixed/retired | 2026-08-24T02:25:16.255269Z | record_pulse_result for module=technical_review is permanently blocked for this pulse_run_id because the reviewer's own terminal receipt (result=done) was written before Fixer work began, under the single-terminal-per-(module,pulse_run_id) constraint. A Fixer that repairs findings after the reviewer's terminal receipt has no typed path to flip their disposition out of queued_for_engineering. |
| upwork | PUL-B2511806 | G65 | Keep open: Caller interpretation contract | 2026-08-23T00:42:55.565473Z | agent_browser snapshot refs{} dictionary key order is not a reliable proxy for DOM/tree sibling order, causing badge-to-entity misattribution on list pages with repeated sibling blocks unless the nested snapshot tree text or the individual detail page is used to resolve the actual parent-child relationship. |
| upwork | PUL-169BD994 | G66 | Keep open: Provider/configuration unresolved | 2026-08-23T00:54:56.359213Z | search_web_llm's default/first-listed providers for capability search_web (claude-code, pi-cli) fail with 'requires workspace auth' and cursor-cli returns non-search shell-command chatter instead of an actual web answer, so only codex-cli (with explicit model_id) reliably returns real search content |
| upwork | PUL-B6864197 | G12 | Keep open: Partial coverage; needs reproduction | 2026-08-31T05:00:42.623359Z | The historical profile-report learnings read denial belongs to the shared Folder Guard boundary and was not exercised because the current profile route failed earlier. |
| upwork | PUL-9C0D14D3 | G67 | Keep open: Distinct retry reconciliation | 2026-08-24T01:39:40.053501Z | 3 independent timestamps agree precisely: run_metadata.json recorded status=failed/completed_at=00:51:15Z (the FIRST improve-report attempt's orchestrator_agent_error). A live plan.json edit (changelog-2026-08-24-00-55-07.json, update_message_sequence_step) landed at 00:55:07Z diagnosing and relocating the write target. improve-report/session.json shows a SECOND attempt, status=completed, updated_at=00:57:32.102Z. schedule-runs.json's own record for this same fire (d4b6c12f/6daf70e9) shows completed_at=00:57:32.111329Z (the SAME instant as the successful retry) but still reports status=error. db/assets/reports/latest_bid_improvement.md exists, complete, dated exactly this window. So the schedule-level record captured the later, true end time of the session but both it and the run-level record still show failure despite complete real work being done inside that same session. |
| upwork | PUL-9CCE9488 | G30 | Keep open: Third-party CLI defect | 2026-08-24T18:33:50.467469Z | Calling agent_browser(command=network, args=[--cdp , tab, t31, requests]) on the toptal-submit steps own tab returned dozens of unrelated requests from OTHER open tabs in the same shared Chrome instance (LinkedIn, Reddit, X/Twitter, Substack, BuiltIn NYC, Google Analytics), none related to talent.toptal.com. The tab qualifier in the command args did not scope the result. This is a single reproducible instance (seen_count=1); the workflow supplied a valid tab-scoped request and the shared tool ignored the scope. |
| upwork | PUL-1EE39C89 | G19 | Keep open: Related but distinct; unresolved | 2026-08-24T18:53:23.574357Z | Definitive evidence across the FULL schedule-runs.json history (177 rows, all schedules, going back weeks) shows every single scheduled run wrote run_folder=iteration-0 -- including schedule 78ba88d0 (job-search+daily-bid) which has fired 75 times and 46a9b350 (toptal-bid) 47 times. Zero iteration-1..N backup folders have EVER been produced by a scheduled/cron run. Since run_retention_count governs how many backups to KEEP (default 5) and not whether they are created, and 75+ same-group fires produced not even ONE backup, the absence of run_retention_count in workflow.json cannot be the cause -- setting it would change nothing. |
| upwork | PUL-E19F5F1B | G04 | Resolve: verified fixed/retired | 2026-08-25T17:18:35.897508Z | record_pulse_result rejects a later independent Fixer pass after an earlier Fixer already recorded lifecycle outcomes against the same completed Technical Review. |
| upwork | PUL-07504731 | G26 | Keep open: Current code suspect | 2026-09-01T13:10:06.770465Z | get_plan_prompt_health returned the exact pre-change description counts and duplicate clusters twice after four successful managed plan updates, while the canonical plan file and validate_plan_change already consumed the post-change descriptions. |