Dashboard › opencode-lore › Distillation
2f7803bc-9a4d-435e-9448-f3e3c0ed9f1d["lore_tm_v1_n430RgeyjIfpzQ5TNchr7Wo-SO-VYx4How1enasvZSc"]
Date: September 16, 2026
sentry api must preserve rawApiRequest() status text; empty textual non-2xx bodies must produce an HTTP status/request fallback; JSON mode must expose {status, statusText, body} so empty success and error responses remain distinguishable; binary Uint8Array successes bypass formatters and remain raw; binary errors emit only status/content-type/byte-count summaries and never bytes or JSON coercion; prompts must never block scripted runs or interleave with stdout JSON.buildIssueListCollapse() always starts with ['filtered','unhandled'], conditionally adding 'lifetime' and then 'stats'.src/commands/issue/list.ts defines LIFETIME_FIELDS = new Set(['count','userCount','firstSeen','lastSeen']); these fields may be stripped by collapse=lifetime on the issue-list endpoint.buildListApiOptions(json, fields) enables collapseLifetime only when json && fields !== undefined && fields.length > 0 && !fields.some(f => LIFETIME_FIELDS.has(f)); human output never collapses lifetime.ISSUE_DETAIL_COLLAPSE safely includes 'lifetime' because the detail endpoint preserves top-level fields. IssueViewOutputSchema in src/types/sentry.ts extends SentryIssueSchema with event, org, replayIds, and trace, which jsonTransformIssueView adds; view.ts wires it through schema: IssueViewOutputSchema. count, userCount, firstSeen, and lastSeen are always present on issue view and are only potentially absent from issue list when collapse=lifetime is active.constructor(private readonly handle: FileHandle). Biomeβs noParameterProperties rule applies to new classes in src/lib/**/*.ts; it previously caught 4 errors at lines 281, 310, 311, and 312 during the FileOldReader/MemoryOldReader addition in bspatch.ts.biome check <file>. biome check --stdin-file-path=<file> can falsely exit with code 1 and report contents aren't fixed; this was confirmed during the agent-skills.ts review when stdin mode failed but --write produced zero changes..github/workflows/ci.yml:507 uses grep "^nightly-${MAJOR_MINOR}\\.", where the unescaped dot inside MAJOR_MINOR is technically a regex metacharacter. It is harmless in practice because MAJOR_MINOR is always digits, derived via cut -d. -f1,2 from X.Y.Z-dev.TS, and .github/workflows/ci.yml:501 first applies the sanitizing ^nightly-[0-9] filter..github/workflows/ci.yml:507 grep: (1) grep -F "^nightly-${MAJOR_MINOR}." for literal matching; (2) ${MAJOR_MINOR//./\\.} to escape dots in shell; or (3) [[ "$tag" == nightly-${MAJOR_MINOR}.* ]] for direct Bash pattern matching.onProgress callbacks and done(), must use try/catch that swallows display errors. Progress data must remain accurate and non-misleading; multi-hop patch chains should use percentage-only formatting when summed byte totals are inflated. Regression tests must verify both that unguarded rendering would fail and that the intended format is passed at the call site.response.output_text.done is authoritative and must replace accumulated text rather than relying on concatenated deltas. Preserve strict identity/type reconciliation; on malformed or contradictory terminal data, redact private recall arguments and identifiers, fail closed with the appropriate public error, and do not execute recall or follow-up logic when validation fails.