~bigbes/sr-ht-spec

ref: 61515a575dc7e931829c05eed0cd3c3a441df753 sr-ht-spec/.beads/interactions.jsonl -rw-r--r-- 6.8 KiB
61515a57 — Eugene Blikh chore(beads): file spec-ejq.2, CI publish blocked on missing apk-ci-s3 secret 25 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{"id":"int-2008a7d96c7358547cba9583aa347e32","kind":"field_change","created_at":"2026-07-23T04:52:45.789512Z","actor":"Eugene Blikh","issue_id":"spec-43w","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Stale apk pins already bumped in the stack versions.env (paste 0.19.4-r0, hub 0.31.1-r0); fixed out of band."}}
{"id":"int-3969a1747b4fcdc0d41faa43eb13634e","kind":"field_change","created_at":"2026-07-23T05:29:29.479461Z","actor":"Eugene Blikh","issue_id":"spec-zqb","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Write plane shipped: service.Propose/Merge/Reject/ListProposals with provenance trailers, auto-merge policy, If-Match staleness + already-merged ancestry check; surfaces graph (Proposals port), mcpsrv spec_propose, and new api/ REST PUT — every write returns {proposal, url}. Validated end-to-end against Postgres. spec_comment deliberately deferred to Phase 5 (spec-by6), which gates the comment schema on the Phase 4 review UI; the approve/reject browser UI is Phase 4 (spec-3vz)."}}
{"id":"int-28fa6c154fc3113698283f988dc78511","kind":"field_change","created_at":"2026-07-23T06:52:55.122095Z","actor":"Eugene Blikh","issue_id":"spec-3vz","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Review plane shipped: proposal page at /~owner/space/p/<id> with the prose diff (inline word-diff above 0.75 similarity, two-column old/new below — the Phase 0 verdict's hard requirement, in web/diff.go), approve(merge)/reject as owner-only CSRF-guarded POSTs, status badges, and the /inbox review queue + policy-merged digest. service.ProposalDiff/InboxProposals/DigestProposals/MergeHuman back it; web.Reader extended. Diff reads the proposal branch by resolving its tip to a sha (pinned read) rather than the ReadDocumentAtRef bypass — cleaner and immutable. Validated: diff renderer unit tests (inline/two-column/escaping), proposal-page + approve/reject handler tests (CSRF, owner-only, stale->409, wrong-space->404), inbox tests, and PG-backed service tests. Follow-up: digest_mark 'since last seen' tracking."}}
{"id":"int-e44f5312aa6159dbb9df8fa3a0404576","kind":"field_change","created_at":"2026-07-24T09:50:16.337722Z","actor":"Eugene Blikh","issue_id":"spec-45j","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Webhook tables/SDL/resolvers/delivery all shipped and verified end-to-end."}}
{"id":"int-53d16ae6d76c4c187c6c42b48b12e7d6","kind":"field_change","created_at":"2026-07-24T09:50:17.511706Z","actor":"Eugene Blikh","issue_id":"spec-8y4","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Adopted core-go server stack for /query (faithful path); the convention pieces webhooks needed (auth/database/server context, database.Model for webhook models, gqlgen) are in."}}
{"id":"int-a4e40b3dd671461982354ddfda2106bd","kind":"field_change","created_at":"2026-07-24T09:50:18.151917Z","actor":"Eugene Blikh","issue_id":"spec-3m9","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Phase 5a webhooks complete: DB + authn→AuthContext bridge + GraphQL surface + core-go server wiring + firing. Verified live: agent REST propose delivers an Ed25519-signed POST whose body is the subscription query executed against the ProposalEvent payload; delivery recorded."}}
{"id":"int-635c713a62ccbeb74f0f6030f75eb20d","kind":"field_change","created_at":"2026-07-24T16:45:31.84927Z","actor":"Eugene Blikh","issue_id":"spec-jjo","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"MCP surface gated to owner+agents (mcpsrv.Gate), mounted inside resolver middleware; tests cover anon 401 / owner+agent pass / fail-closed without middleware. Commit 7cc652d."}}
{"id":"int-efe1054b315e03fdc31f2535d4ccd1d1","kind":"field_change","created_at":"2026-07-24T16:54:06.613186Z","actor":"Eugene Blikh","issue_id":"spec-mfm","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Inbox GET reads digest_mark to flag/count new-since-last-looked auto-merges + divider (pure read); explicit POST /inbox/seen advances the mark behind owner-only + same-origin guard. service.DigestMark/MarkDigestSeen added. Commit 865a21f."}}
{"id":"int-f4f6563f5207770848db3bf66247c0db","kind":"field_change","created_at":"2026-07-24T16:59:33.671408Z","actor":"Eugene Blikh","issue_id":"spec-ejq.1","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"authn.Principal.CanRead() defined once; graph.gate, web.mayRead, mcpsrv.Gate routed through it. coreauth left independent (different semantic). Unit test covers owner/agent true, anon/zero/unknown false. Commit pending push."}}
{"id":"int-d8d8556e8412e54680f206d5867f2370","kind":"field_change","created_at":"2026-07-24T18:12:41.580051Z","actor":"Eugene Blikh","issue_id":"spec-wcr","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"All 7 items dispositioned: 2 fixed (#1,#2), 1 deleted (#4), 2 wontfix (#3,#5), 2 moved to Phase 5 (spec-by6.1, spec-by6.2)."}}
{"id":"int-2e1293e1ef51cf8c03a3c538d807fdae","kind":"field_change","created_at":"2026-07-24T19:08:44.914555Z","actor":"Eugene Blikh","issue_id":"spec-by6.3.1","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"core.CommentAnchor + ResolveAnchor with 9 tests; migrations/0004_comment.sql + schema.sql; db/comment.go with 8 Postgres-backed tests, all green against real PG 16."}}
{"id":"int-06d2c1ce7f403e7cbb46c711877f5a14","kind":"field_change","created_at":"2026-07-24T19:15:24.165993Z","actor":"Eugene Blikh","issue_id":"spec-by6.3.2","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"service.CommentOn/ReplyTo/ResolveThread/Threads + AnchorThreads/AnchorOf; auto-merge gate in autoMerges. 10 tests, PG-backed ones green against real PG 16."}}
{"id":"int-70f93fbf5d69de0ca9f334d61c671867","kind":"field_change","created_at":"2026-07-24T19:44:55.309486Z","actor":"Eugene Blikh","issue_id":"spec-by6.3.4","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"spec_comment: list threads with anchor state + reply; no-resolve enforced by interface. 9 tests green, no DB needed. Committed f82d90a."}}
{"id":"int-6f8f60b7e8df8f63b87952e47015d2d5","kind":"field_change","created_at":"2026-07-24T19:59:27.168688Z","actor":"Eugene Blikh","issue_id":"spec-by6.3.3","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Context blocks + anchor ids + thread UI; lost-anchor area; stale-block 409. Committed 472bcb1."}}
{"id":"int-e8dbd67090e659150fb378d33b692d30","kind":"field_change","created_at":"2026-07-24T19:59:29.109943Z","actor":"Eugene Blikh","issue_id":"spec-by6.3","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"All four children done: core+db anchors (1a25367), service API + auto-merge gate (c6e5d66), mcpsrv spec_comment (f82d90a), web commentable diff (472bcb1)."}}