Surfaced during the review of #129. After fixing the issue_comment.edited/.deleted subscription gap, two adjacent surfaces still rely on lazy backfill rather than webhook write-through:
src/app.ts:104 subscribes only issues.labeled / issues.unlabeled. No issues.edited or issues.deleted subscription. The issue body is cached in target_cache via upsertTarget, but upsertTarget is currently only called from backfillFromGitHub (src/db/queries/conversation-store.ts:257). A user editing the issue title or body in flight is not reflected in target_cache until a cold-miss backfill happens.
src/app.ts:108 subscribes only pull_request_review.submitted. No write-through for review body edits/deletions.
Both are weaker bugs than #129 because the backfill path will fetch fresh data on first read, so the staleness window is bounded by the chat-thread cache hit pattern. But the same class of "the agent reasons against pre-edit text the user thought they changed" applies.
Scope of follow-up:
- Decide whether
target_cache should also be write-through (mirroring comment_cache) or whether the lazy backfill is intentional.
- If write-through is wanted, add
issues.edited, issues.deleted subscriptions and a corresponding writer in src/webhook/events/issues.ts.
- Audit
pull_request.opened/.edited/.closed subscriptions at src/app.ts:85-93 against target_cache writes for the same gap.
Not in scope for #129; tracking separately to avoid PR bloat.
Surfaced during the review of #129. After fixing the
issue_comment.edited/.deletedsubscription gap, two adjacent surfaces still rely on lazy backfill rather than webhook write-through:src/app.ts:104subscribes onlyissues.labeled/issues.unlabeled. Noissues.editedorissues.deletedsubscription. The issue body is cached intarget_cacheviaupsertTarget, butupsertTargetis currently only called frombackfillFromGitHub(src/db/queries/conversation-store.ts:257). A user editing the issue title or body in flight is not reflected intarget_cacheuntil a cold-miss backfill happens.src/app.ts:108subscribes onlypull_request_review.submitted. No write-through for review body edits/deletions.Both are weaker bugs than #129 because the backfill path will fetch fresh data on first read, so the staleness window is bounded by the chat-thread cache hit pattern. But the same class of "the agent reasons against pre-edit text the user thought they changed" applies.
Scope of follow-up:
target_cacheshould also be write-through (mirroringcomment_cache) or whether the lazy backfill is intentional.issues.edited,issues.deletedsubscriptions and a corresponding writer insrc/webhook/events/issues.ts.pull_request.opened/.edited/.closedsubscriptions atsrc/app.ts:85-93againsttarget_cachewrites for the same gap.Not in scope for #129; tracking separately to avoid PR bloat.