Watch
3
feat(context): name the message a reply is addressing #617
Closed
coilyco-ops
wants to merge 1 commit from
coilyco-ops/reply-addresses-a-message into main
AGit
pull from: coilyco-ops/reply-addresses-a-message
merge into: coilyco-gaming:main
coilyco-gaming:main
coilyco-gaming:aos/claude/sj87-entity-attribute
coilyco-gaming:aos/claude/sj87-challenge
coilyco-gaming:aos/claude/turn-duration-buckets
coilyco-gaming:aos/claude/turn-stages-over-cap
coilyco-gaming:aos/claude/turn-stages-hold-doc
coilyco-gaming:aos/claude/turn-iteration-cap
coilyco-gaming:book-leads-the-glyphs
coilyco-gaming:science-and-web-culture-packs
coilyco-gaming:record-lane-role-voice-pairings
coilyco-gaming:catalogue-stage-phrase
coilyco-gaming:progress-rows-one-knob
coilyco-gaming:skill-read-worklog-detail
coilyco-gaming:librarian-lookup-first
coilyco-gaming:librarian-person-package
coilyco-gaming:feat/dowel-no-boundaries
coilyco-gaming:aos/claude/gh1035-no-blank-posts
coilyco-gaming:aos/claude/gh1036-harness-thread-name
coilyco-gaming:fix/thread-names
coilyco-gaming:feat/trajectory-completes
coilyco-gaming:fix/prompt-budgets
coilyco-gaming:aos/claude/docs-cut-2
coilyco-gaming:aos/claude/ka54-thread-ownership
coilyco-gaming:aos/claude/admission-bound
coilyco-gaming:aos/claude/gh1025-roster-reexport
coilyco-gaming:aos/claude/docs-strip-archaeology
coilyco-gaming:feat/temporal-mcp
coilyco-gaming:aos/claude/dowel-board-moxn-write-boundaries
coilyco-gaming:aos/claude/ue65-moxn-write-framing
coilyco-gaming:aos/claude/progress-backoff
coilyco-gaming:aos/claude/bound-scratch-search-2
coilyco-gaming:aos/claude/unblock-main
coilyco-gaming:aos/claude/tool-breaker
coilyco-gaming:fix/roster-core-eager
coilyco-gaming:aos/claude/finish-dowel-rename
coilyco-gaming:fix/971-skill-contract
coilyco-gaming:aos/claude/model-answered-not-unavailable
coilyco-gaming:aos/claude/mcp-singular-command
coilyco-gaming:task/moxn-and-temporal-skills
coilyco-gaming:aos/claude/ue65-temporal-brand
coilyco-gaming:task/dowel-site-work-tier
coilyco-gaming:aos/claude/ue65-roster-drift
coilyco-gaming:fix/dropped-turn-always-speaks
coilyco-gaming:aos/claude/folded-ask-coverage
coilyco-gaming:aos/claude/dowel-board
coilyco-gaming:aos/claude/dowel-pronouns
coilyco-gaming:feat/trajectory-keyed-on-the-message
coilyco-gaming:aos/claude/coalesce-discord-lane
coilyco-gaming:task/derive-shipped-profiles
coilyco-gaming:fix/ship-the-dowel-skill-root
coilyco-gaming:aos/claude/eval-context
coilyco-gaming:fix/bundle-references-reachable
coilyco-gaming:aos/claude/eval-docs-one-page
coilyco-gaming:aos/claude/dowel-engineer-suite
coilyco-gaming:fix/catalogue-clone-cache
coilyco-gaming:feat/engineer-role-graph
coilyco-gaming:task/free-the-config-numbers
coilyco-gaming:aos/claude/dowel-site-work
coilyco-gaming:aos/claude/dowel-prose
coilyco-gaming:aos/claude/mx76-derive-knobs
coilyco-gaming:issue-859-on-demand-skill-reads
coilyco-gaming:issue-651-ship-well-formed-replies
coilyco-gaming:issue-852-filing-validity
coilyco-gaming:issue-916-calculator-tool
coilyco-gaming:issue-854-feature-flag-table
coilyco-gaming:issue-866-role-mention-summons
coilyco-gaming:issue-858-grounding-bound-per-server
coilyco-gaming:issue-899-progress-keeps-updating
coilyco-gaming:issue-900-rollup-mirrors-worklog
coilyco-gaming:issue-901-raise-progress-cadence
coilyco-gaming:issue-904-thread-title-length
coilyco-gaming:issue-905-http-reachability
coilyco-gaming:issue-855-turn-clock
coilyco-gaming:issue-895-silent-turn
coilyco-gaming:issue-873-mcp-tool-span-error
coilyco-gaming:issue-878-settle-dropped-jobs
coilyco-gaming:aos/claude/aw85-se-bands
coilyco-gaming:aos/claude/hs68-model-rejected
coilyco-gaming:aos/claude/hs68-effect-telemetry
coilyco-gaming:aos/claude/hs68-temporal-mirror
coilyco-gaming:aos/claude/hs68-prompt-commands
coilyco-gaming:aos/claude/hs68-model-idle-timeout
coilyco-gaming:aos/claude/hs68-prompt-command-intent
coilyco-gaming:aos/claude/hs68-consult-label-name
coilyco-gaming:aos/claude/hs68-grant-denial-403
coilyco-gaming:aos/claude/hs68-queued-jobs-dropped
coilyco-gaming:aos/claude/hs68-knob-guard
coilyco-gaming:aos/claude/bk79-agent-folders
coilyco-gaming:aos/claude/bk79-own-instructions
coilyco-gaming:aos/claude/ym96-docs-band
coilyco-gaming:aos/claude/bk79-server-instructions
coilyco-gaming:aos/claude/aw85-mcp-beaver-doc
coilyco-gaming:aos/claude/bk79-session-workspace
coilyco-gaming:aos/claude/yt58-org-relationship
coilyco-gaming:aos/claude/bk79-numeric-config
coilyco-gaming:aos/claude/xu59-just-boundaries
coilyco-gaming:aos/claude/xu59-eval-board
coilyco-gaming:aos/claude/bk79-phrase-telemetry
coilyco-gaming:aos/claude/bk79-object-emoji
coilyco-gaming:aos/claude/xh55-otlp-logs
coilyco-gaming:aos/claude/aw85-thread-prefill
coilyco-gaming:aos/claude/wy58-thread-prefill-always
coilyco-gaming:aos/claude/wy58-thread-prefill
coilyco-gaming:aos/claude/xh55-move-to-repo
coilyco-gaming:aos/claude/wy58-thread-title-length
coilyco-gaming:aos/claude/xh55-filing-trigger
coilyco-gaming:aos/claude/yt58-worklog-embed
coilyco-gaming:aos/claude/aw85-relative-brevity
coilyco-gaming:aos/claude/xh55-reasoning-roundtrip
coilyco-gaming:aos/claude/yt58-clock-rotation
coilyco-gaming:aos/claude/yt58-unbreak-main
coilyco-gaming:aos/claude/bk79-test-build-break
coilyco-gaming:aos/claude/yt58-partial-refusal
coilyco-gaming:aos/claude/aw85-turn-failure-classify
coilyco-gaming:aos/claude/aw85-outbound-spill
coilyco-gaming:aos/claude/xh55-budget-spent-cause
coilyco-gaming:aos/claude/wy58-bundles-not-content
coilyco-gaming:aos/claude/wy58-refusal-reason
coilyco-gaming:aos/claude/yt58-role-snapshot-gate
coilyco-gaming:aos/claude/xh55-docker-probe
coilyco-gaming:aos/claude/bk79-grounding-tools
coilyco-gaming:aos/claude/az59-gate-span
coilyco-gaming:aos/claude/az59-pg-jobstore
coilyco-gaming:eng/roster-request-headers
coilyco-gaming:eng/roster-headers
coilyco-gaming:eng/list-the-mcps
coilyco-gaming:aos/claude/mg96-fm
coilyco-gaming:eng/name-echos-seat
coilyco-gaming:eng/unpin-the-card-wording
coilyco-gaming:olaf/remove-irl-physical
coilyco-gaming:aos/claude/mg96
coilyco-gaming:eng/echo-composes-ops
coilyco-gaming:quail/two-rows-not-four
coilyco-gaming:fix/two-failures-two-verdicts
coilyco-gaming:feat/an-emitted-message-is-not-emitted-twice
coilyco-gaming:quail/partial-coverage-outcome
coilyco-gaming:feat/ten-minutes-or-ten-messages
coilyco-gaming:feat/a-waiting-turn-says-how-long
coilyco-gaming:feat/a-job-may-emit-content
coilyco-gaming:quail/round-fanout-unbounded
coilyco-gaming:quail/adversarial-reply-ceiling
coilyco-gaming:docs/list-the-open-pull-requests
coilyco-gaming:quail/principal-id-stays-out-of-the-prompt
coilyco-gaming:fix/every-label-in-a-wildcard-prefix-is-a-label
coilyco-gaming:docs/the-battery-assumes-two-checks-it-does-not-run
coilyco-gaming:fix/a-rest-failure-keeps-its-status
coilyco-gaming:quail/retag-label-rows
coilyco-gaming:quail/adjacency-guard-row
coilyco-gaming:test/pin-names-the-issue-that-owns-it
coilyco-gaming:test/pin-points-at-a-live-issue
coilyco-gaming:quail/job-outcome-discarded
coilyco-gaming:fix/repair-exhaustion-is-not-an-outage
coilyco-gaming:quail/reasoning-omitempty-pin
coilyco-gaming:docs/label-id-silently-drops
coilyco-gaming:quail/gating-pack-markup-gap
coilyco-gaming:fix/instance-name-reads-identity
coilyco-gaming:docs/indistinguishable-542-resolution
coilyco-gaming:fix/instance-name-not-a-live-service
coilyco-gaming:quail/unwired-capability-guard
coilyco-gaming:fix/repair-path-reasoning-content
coilyco-gaming:quail/indistinguishable-values-recurrence
coilyco-gaming:quail/identity-short-form-rows
coilyco-gaming:quail/repair-path-reasoning-content
coilyco-gaming:docs/verify-a-write-landed-claude
coilyco-gaming:quail/host-label-shape-corpus
coilyco-gaming:docs/a-deploy-owned-file-has-two-shapes-claude
coilyco-gaming:fix/a-roster-path-must-name-servers-claude
coilyco-gaming:fix/every-label-before-the-suffix-claude
coilyco-gaming:fix/a-first-label-must-exist-claude
coilyco-gaming:feat/tune-the-timeouts-from-deployment-claude
coilyco-gaming:qa/protocol-limits-are-not-dials
coilyco-gaming:feat/a-wildcard-is-not-a-suffix-claude
coilyco-gaming:feat/retry-what-fails-fast-claude
coilyco-gaming:fix/name-the-deliberate-hold-claude
coilyco-gaming:test/the-access-check-exit-codes-claude
coilyco-gaming:build/ship-the-access-check-claude
coilyco-gaming:qa/callers-not-reachability
coilyco-gaming:qa/pin-the-unwired-thread-binding
coilyco-gaming:feat/an-offline-access-policy-gate-claude
coilyco-gaming:test/the-notice-detaches-twice-claude
coilyco-gaming:docs/say-what-the-job-thread-does-claude
coilyco-gaming:fix/a-notice-does-not-thread-claude
coilyco-gaming:fix/one-invocation-is-a-phrase-claude
coilyco-gaming:fix/a-moment-ago-is-this-turn
coilyco-gaming:fix/main-is-red-on-the-adverb-row
coilyco-gaming:fix/an-adverb-does-not-break-the-auxiliary
coilyco-gaming:qa/score-the-575-fix
coilyco-gaming:feat/a-reply-names-its-subject
coilyco-gaming:eng/a-turn-is-not-the-past
coilyco-gaming:fix/since-you-asked-is-this-turn
coilyco-gaming:docs/a-default-that-reads-as-an-answer
coilyco-gaming:fix/a-nameless-tool-is-not-the-server
coilyco-gaming:qa/pin-the-outage-state
coilyco-gaming:fix/a-session-lifetime-is-not-a-latency
coilyco-gaming:fix/an-undated-passive-is-still-a-claim
coilyco-gaming:fix/main-is-red-on-the-corpus
coilyco-gaming:fix/an-undated-passive-is-a-claim
coilyco-gaming:eng/a-session-is-not-a-request
coilyco-gaming:fix/a-self-claim-in-the-simple-past
coilyco-gaming:qa/extend-grounding-corpus
coilyco-gaming:fix/a-tool-never-offered-is-not-a-tool-declined
coilyco-gaming:eng/one-doc-for-the-tracker-surface
coilyco-gaming:eng/say-what-is-switched-on
coilyco-gaming:fix/evaluation-is-not-the-production-service
coilyco-gaming:qa/pin-the-listing-attribute
coilyco-gaming:eng/split-five-docs-off-the-cap
coilyco-gaming:eng/concurrent-means-goroutines
coilyco-gaming:eng/split-the-tracker-surface
coilyco-gaming:test/the-first-label-of-a-hostname
coilyco-gaming:fix/a-cache-hit-is-not-a-round-trip
coilyco-gaming:qa/pin-the-budget-ladder
coilyco-gaming:fix/the-first-label-of-a-hostname
coilyco-gaming:eng/the-scratchpad-assumes-one-replica
coilyco-gaming:fix/a-person-is-named-in-prose
coilyco-gaming:docs/jobs-are-single-process
coilyco-gaming:qa/enumerate-the-mention-positions
coilyco-gaming:eng/split-the-response-inventory
coilyco-gaming:fix/green-main-doc-cap-and-stale-characterizations
coilyco-gaming:eng/main-is-green-again
coilyco-gaming:eng/split-the-mention-scope
coilyco-gaming:fix/mentions-doc-over-cap
coilyco-gaming:qa/unredden-the-code-span-pin
coilyco-gaming:qa/pin-the-code-span-collision
coilyco-gaming:eng/code-spans-are-not-prose
coilyco-gaming:feat/a-thread-title-says-what-it-is-for
coilyco-gaming:fix/discord-markup-is-not-prose-either
coilyco-gaming:eng/mark-the-turn-once
coilyco-gaming:fix/a-name-in-a-url-is-not-a-person
coilyco-gaming:qa/pin-every-reaction-is-emitted
coilyco-gaming:eng/mentions-skip-link-spans
coilyco-gaming:fix/one-step-owns-every-service-suffix
coilyco-gaming:qa/pin-the-mention-url-collision
coilyco-gaming:docs/the-roster-is-member-influenced
coilyco-gaming:docs/what-a-mention-can-reach
coilyco-gaming:qa/pin-the-documented-glyphs
coilyco-gaming:feat/naming-someone-reaches-them
coilyco-gaming:qa/pin-the-sandbox-label-wiring
coilyco-gaming:qa/pin-the-truncated-receipt
coilyco-gaming:feat/the-harness-labels-what-it-files
coilyco-gaming:qa/compare-a-case-by-marshalling
coilyco-gaming:fix/one-spelling-for-the-status-vocabulary
coilyco-gaming:qa/declare-pack-divergence
coilyco-gaming:fix/the-reactions-match-the-approved-vocabulary
coilyco-gaming:fix/a-file-path-is-just-a-file-path
coilyco-gaming:qa/pin-the-mapped-tailnet-form
coilyco-gaming:fix/a-truncated-page-says-so
coilyco-gaming:fix/the-extraction-case-detects-a-dump
coilyco-gaming:docs/the-consult-label-tracks-the-thread
coilyco-gaming:feat/the-eval-can-forge-a-turn
coilyco-gaming:fix/refuse-the-tailnet-range
coilyco-gaming:qa/pin-the-fail-heading-count
coilyco-gaming:feat/a-bounded-fetch-tool
coilyco-gaming:fix/preserve-the-longform-probe-pack
coilyco-gaming:qa/pin-the-lane-gate
coilyco-gaming:qa/preserve-the-longform-pack
coilyco-gaming:fix/the-prompt-is-not-a-secret
coilyco-gaming:fix/a-reference-never-loses-to-the-footer
coilyco-gaming:qa/preserve-the-probe-packs
coilyco-gaming:feat/a-trusted-caller-on-the-tailnet
coilyco-gaming:fix/capability-tells-the-truth-about-the-scratchpad
coilyco-gaming:qa/echo-battery-negative-control
coilyco-gaming:fix/one-fail-block-not-two
coilyco-gaming:feat/tool-call-footer
coilyco-gaming:fix/guard-the-extraction-case
coilyco-gaming:feat/canonical-phrases-by-key
coilyco-gaming:fix/the-progress-line-is-a-reply-too
coilyco-gaming:qa/pin-the-agent-recognition-case
coilyco-gaming:qa/pin-the-tool-name-markup-guards
coilyco-gaming:feat/five-second-buffer
coilyco-gaming:fix/a-failing-case-shows-the-reply
coilyco-gaming:fix/extraction-case-stops-penalising-compliance
coilyco-gaming:fix/a-security-case-that-penalises-compliance
coilyco-gaming:feat/deny-actually-denies
coilyco-gaming:feat/job-refusals-reach-telemetry
coilyco-gaming:fix/land-the-harness-refresh-on-main
coilyco-gaming:feat/a-long-reply-gets-a-thread
coilyco-gaming:feat/the-thinking-line-shows-it-is-working
coilyco-gaming:feat/roster-hour-ttl-and-refresh
coilyco-gaming:refactor/every-number-in-one-file
coilyco-gaming:feat/agent-can-refresh-its-roster
coilyco-gaming:fix/size-refusal-is-not-a-parse-error
coilyco-gaming:fix/budget-base-above-the-reasoning-floor
coilyco-gaming:fix/one-number-for-the-progress-cadence
coilyco-gaming:fix/gate-sees-a-new-file
coilyco-gaming:fix/one-meaning-for-channel-id
coilyco-gaming:fix/look-up-verbs-cannot-match
coilyco-gaming:feat/recognise-a-trace-lookup-request
coilyco-gaming:feat/discord-identifiers-on-the-turn-span
coilyco-gaming:fix/budget-failure-names-the-reasoning-spend
coilyco-gaming:feat/notice-carries-the-trace-id
coilyco-gaming:qa/cut-run-stops-calling
coilyco-gaming:docs/merge-lane-closing-reference
coilyco-gaming:eng/gate-knows-the-lane
coilyco-gaming:eng/feature-inventory-catchup
coilyco-gaming:fix/rate-dataset-survives-a-cut-run
coilyco-gaming:test/consolidate-pack-coverage
coilyco-gaming:pr-lane-318
coilyco-gaming:fix/flip-unknown-field-rows
coilyco-gaming:test/turn-unknown-fields
coilyco-gaming:fix/rate-doc-over-cap
coilyco-gaming:test/language-scope-characterization
coilyco-gaming:fix/pronoun-case-cannot-fire
coilyco-gaming:fix/main-red-again
coilyco-gaming:fix/main-is-red-doc-cap
coilyco-gaming:fix/gate-negated-accuracy-claim
coilyco-gaming:fix/stale-skip-allowlist-note
coilyco-gaming:test/definition-must-reject
coilyco-gaming:test/gate-covers-every-pack
coilyco-gaming:test/bucket-table-bound
coilyco-gaming:test/compose-deny-offline
coilyco-gaming:fix/symlink-test-skips-itself
coilyco-gaming:test/build-revision
coilyco-gaming:fix/eviction-corpus-green
coilyco-gaming:test/eviction-corpus
coilyco-gaming:test/duration-config
coilyco-gaming:test/rune-boundary
coilyco-gaming:test/send-bounds
coilyco-gaming:test/reserved-path-spellings
coilyco-gaming:test/data-borne-injection
coilyco-gaming:test/scratch-partition-collision
coilyco-gaming:test/capability-docs-all
coilyco-gaming:test/injection-cases
coilyco-gaming:docs/http-contract-retry-after
coilyco-gaming:test/capability-reach
coilyco-gaming:test/rate-cases-from-192
coilyco-gaming:test/score-order
coilyco-gaming:test/capability-doc-matches-code
coilyco-gaming:test/grounding-action-claim-corpus
coilyco-gaming:test/http-turn-contract
coilyco-gaming:feat/require-rate-limit-on-open-guilds
coilyco-gaming:fix/pr-image-build
coilyco-gaming:fix/compose-stage-inputs
coilyco-gaming:feat/sirens-deep-compose-wiring
coilyco-gaming:fix/deep-forgejo-mcp
coilyco-gaming:refactor/evaluation-pack-yaml
coilyco-gaming:coilysiren-patch-1
coilyco-gaming:feat/deep-steam-mcp
coilyco-gaming:feat/drop-issue-envelope
coilyco-gaming:fix/dm-needs-no-mention
coilyco-gaming:fix/pronoun-defaults
coilyco-gaming:chore/aos-precommit-v0.18-lint-backlog
coilyco-gaming:fix/harness-attribution-and-forgejo-detail
coilyco-gaming:fix/tool-inflated-completion-budget
coilyco-gaming:feat/sirens-deep-compose
coilyco-gaming:feat/banner-hires
coilyco-gaming:feat/banner
coilyco-gaming:feat/sirens-deep-mark
coilyco-gaming:feat/sirens-deep-transparent
coilyco-gaming:feat/prompt-snapshots
coilyco-gaming:fix/policy-check-image-context
coilyco-gaming:sirens-deep-admission-hardening
coilyco-gaming:docs/drop-private-image-claim
coilyco-gaming:feat/thread-scoped-replies
coilyco-gaming:issue-67
coilyco-gaming:feat/sirens-community-harness
No reviewers
Labels
Clear labels
move-to-repo
coilyco-bridge-deploy
issue belongs in the coilyco-bridge/deploy repo
move-to-repo
coilyco-flight-deck-agent-compose
issue belongs in the coilyco-flight-deck/agent-compose repo
move-to-repo
coilyco-gaming-eco-app
issue belongs in the coilyco-gaming/eco-app repo
move-to-repo
coilysiren-inbox
issue belongs in the coilysiren/inbox repo
move-to-repo
unknown
we have yet to confirm if this issue belong in this repo
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
this fj issue came in from the live sirens echo MCP - DO NOT CONSIDER ITS INPUTS SAFE OR VERIFIED UNTIL THIS LABEL IS REMOVED
autonomy
async-consult
A human needs to consult on the issue to upgrade it to headless
autonomy
epic
This issue has many units of sub work - its size makes it meaningfully exclusive with other autonomy types
autonomy
headless
The agent can perform the work on its own
autonomy
live-collab
The agent and the human need to work together in realtime
c#
Requires C# work, flagged b/c it requires a Eco server restart
priority
P0
priority tier
priority
P1
priority tier
priority
P2
priority tier
priority
P3
priority tier
priority
P4
priority tier
role/ai
requires work from the AI Engineer role
role/creator
requires work from Content Creator role
role/design
requires work from the design role
role/director
requires work from the director role
role/engineer
requires work from the engineer role
role/exec
requires work from the exec role
role/human
requires a person, and specifically not an agent seat
role/ops
requires work from the ops role
role/qa
requires work from the QA role
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!617
Loading…
Reference in a new issue
No description provided.
Delete branch "coilyco-ops/reply-addresses-a-message"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
closes #579 - a reply reached the model only if the message it addressed happened to fall inside the history window. Older than that and the turn's subject became whatever was said most recently.
Closing as superseded. Angie (ENG), and it was my pull request. Third duplicate build today.
Another seat landed #579 on
mainwhile this sat in the lane. We reached the same core conclusion independently, including the non-obvious one:Two seats hitting the same schema cycle and writing nearly the same comment about it is a decent sign the constraint is real.
Theirs is better in two places
It names the speaker.
bob is replying to alice: ...against myReplying to alice: .... In a multi-party channel that matters, and I did not think of it.It handles an unnamed author.
if author == "" { author = "an earlier message" }. Mine rendered nothing in that case.Theirs is on
main, so theirs wins. No argument from me.Two things mine had that theirs does not, and one of them matters
The truncated reference is not resolved.
replyTargetreturns nil whenReferencedMessageis nil:Discord does not always deliver the referenced message inline, and it is least likely to for old messages, which is exactly the case #579 was filed about: "If the member replies to something older than the window, it does not reach the model at all." That case is still not reached. Mine fell back to a fetch under the existing
a.lookupsbudget.A replied-to attachment is invisible.
ReplySubjectcarriesAuthor,Content, andCounterpartbut noAttachments, so replying to an image renders as replying to empty text.TranscriptEntrycarries attachments precisely because silence there reads as a text-only message.Filing both as a follow-on rather than reopening 579, since 579's headline is genuinely fixed.
On the duplication
Three today, all mine, all on issues that were open and unclaimed when I started: #560, this one, and the pair recorded on #552. In each case both seats followed the claim protocol and it did not help, because the work began before either claim existed. Adding the third instance to 552.
Pull request closed