Quill's single Flock.ask reply can now open with RELAY {"crow":...,"task":...}: a valid relay posts a request authored by Quill (to the named crow, refers_to the owner message, tagged_by harness) and runs it through the normal must-respond trigger.
Invalid relay JSON or a crow outside the nest's core posts one Quill say back to the requester (I could not find <crow> in this nest.; name omitted when the JSON was broken) and nothing else.
No RELAY prefix keeps #38 behavior: one Quill deliver. The exactly one model call assertion still holds.
Extracted the POST handler's trigger switch plus deliver/divergence hook into Server.triggerResponse, called from both the handler and respondQuill — identical behavior for existing flows (full suite proves it).
EVENTS.md Nests section documents relays riding the existing record shape; no new fields.
How to test / validate
gofmt -l . prints nothing
go vet ./... clean
go test -race -count=1 -timeout 180s . → ok somanycrows (all tests, incl. the four new relay_test.go ones)
RED was captured first (f6edc8a), excerpt: --- FAIL: TestQuillRelayPostsRequest — Quill never posted the relay request / --- FAIL: TestQuillRelayUnknownCrowStalls — the unknown-crow reply must be a Quill say / --- FAIL: TestQuillRelayNotAnsweredTwice — a relay must not also deliver, got 1 delivers
go test -race -run 'TestQuillRelay|TestQuill' -v . → all PASS
Configurations or dependencies
No new env vars, keys or guardrail changes; mock/local brains only in tests
## What was addressed
- Quill's single `Flock.ask` reply can now open with `RELAY {"crow":...,"task":...}`: a valid relay posts a `request` authored by Quill (`to` the named crow, `refers_to` the owner message, `tagged_by` harness) and runs it through the normal must-respond trigger.
- Invalid relay JSON or a crow outside the nest's core posts one Quill `say` back to the requester (`I could not find <crow> in this nest.`; name omitted when the JSON was broken) and nothing else.
- No RELAY prefix keeps #38 behavior: one Quill `deliver`. The `exactly one model call` assertion still holds.
- Extracted the POST handler's trigger switch plus deliver/divergence hook into `Server.triggerResponse`, called from both the handler and `respondQuill` — identical behavior for existing flows (full suite proves it).
- `EVENTS.md` Nests section documents relays riding the existing record shape; no new fields.
## How to test / validate
- [ ] `gofmt -l .` prints nothing
- [ ] `go vet ./...` clean
- [ ] `go test -race -count=1 -timeout 180s .` → `ok somanycrows` (all tests, incl. the four new `relay_test.go` ones)
- [ ] RED was captured first (`f6edc8a`), excerpt:
`--- FAIL: TestQuillRelayPostsRequest — Quill never posted the relay request` /
`--- FAIL: TestQuillRelayUnknownCrowStalls — the unknown-crow reply must be a Quill say` /
`--- FAIL: TestQuillRelayNotAnsweredTwice — a relay must not also deliver, got 1 delivers`
- [ ] `go test -race -run 'TestQuillRelay|TestQuill' -v .` → all PASS
## Configurations or dependencies
- [ ] No new env vars, keys or guardrail changes; mock/local brains only in tests
Closes #40
Epic: #36
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What was addressed
Flock.askreply can now open withRELAY {"crow":...,"task":...}: a valid relay posts arequestauthored by Quill (tothe named crow,refers_tothe owner message,tagged_byharness) and runs it through the normal must-respond trigger.sayback to the requester (I could not find <crow> in this nest.; name omitted when the JSON was broken) and nothing else.deliver. Theexactly one model callassertion still holds.Server.triggerResponse, called from both the handler andrespondQuill— identical behavior for existing flows (full suite proves it).EVENTS.mdNests section documents relays riding the existing record shape; no new fields.How to test / validate
gofmt -l .prints nothinggo vet ./...cleango test -race -count=1 -timeout 180s .→ok somanycrows(all tests, incl. the four newrelay_test.goones)f6edc8a), excerpt:--- FAIL: TestQuillRelayPostsRequest — Quill never posted the relay request/--- FAIL: TestQuillRelayUnknownCrowStalls — the unknown-crow reply must be a Quill say/--- FAIL: TestQuillRelayNotAnsweredTwice — a relay must not also deliver, got 1 deliversgo test -race -run 'TestQuillRelay|TestQuill' -v .→ all PASSConfigurations or dependencies
Closes #40
Epic: #36