Pure code movement: internal/handlers/source_management.go is removed and every declaration in it now sits, unchanged, in one of eleven files. No body, signature, comment or behaviour changed; only each new file's package line and imports are new.
webhook_list.go, webhook_create.go, webhook_detail.go, webhook_edit.go, webhook_delete.go: the webhook pages and their helpers. Archive renaming sits with the edit; event database removal and archive writer eviction with the delete.
event_log.go: the event log page with its loaders, filters and delivery views, beside event_log_view.go.
entrypoint.go: entrypoint create, edit, delete and toggle.
target_create.go: target create and the per-type config builders; target_delete.go and target_toggle.go: target delete and toggle.
shared.go: parseRetentionDays, ownedWebhook, deleteChildResource, toggleChildResource and getUserID.
The README caveat and Design file tree and a comment in internal/middleware/middleware.go now name the new files instead of the removed one.
To check it: split the old file (git show HEAD~1:internal/handlers/source_management.go) and the eleven new files into their top-level declarations, each with its doc comment, and compare the two sets; each old declaration should appear byte for byte in exactly one new file, and nothing else should be in the new files apart from package lines and imports.
Judgement call: the files are named webhook_* as the plan comment on #274 says, not source_* as its definition of done says.
Judgement call: ownedWebhook is in shared.go, not a webhook page file as the plan grouped it: its callers are the event log, the event page, event body, resubmit, replay and target edit, none of them a webhook page.
Judgement call: the source_*_test.go files keep their names; renaming them is not part of this move.
Model: opus-5-5
Pure code movement: `internal/handlers/source_management.go` is removed and every declaration in it now sits, unchanged, in one of eleven files. No body, signature, comment or behaviour changed; only each new file's package line and imports are new.
- `webhook_list.go`, `webhook_create.go`, `webhook_detail.go`, `webhook_edit.go`, `webhook_delete.go`: the webhook pages and their helpers. Archive renaming sits with the edit; event database removal and archive writer eviction with the delete.
- `event_log.go`: the event log page with its loaders, filters and delivery views, beside `event_log_view.go`.
- `entrypoint.go`: entrypoint create, edit, delete and toggle.
- `target_create.go`: target create and the per-type config builders; `target_delete.go` and `target_toggle.go`: target delete and toggle.
- `shared.go`: `parseRetentionDays`, `ownedWebhook`, `deleteChildResource`, `toggleChildResource` and `getUserID`.
The README caveat and Design file tree and a comment in `internal/middleware/middleware.go` now name the new files instead of the removed one.
To check it: split the old file (`git show HEAD~1:internal/handlers/source_management.go`) and the eleven new files into their top-level declarations, each with its doc comment, and compare the two sets; each old declaration should appear byte for byte in exactly one new file, and nothing else should be in the new files apart from package lines and imports.
Judgement call: the files are named `webhook_*` as the plan comment on https://git.eeqj.de/sneak/webhooker/issues/274 says, not `source_*` as its definition of done says.
Judgement call: `ownedWebhook` is in `shared.go`, not a webhook page file as the plan grouped it: its callers are the event log, the event page, event body, resubmit, replay and target edit, none of them a webhook page.
Judgement call: the `source_*_test.go` files keep their names; renaming them is not part of this move.
Model: opus-5-5
Three places still name the removed file and are now false of the tree: README.md line 2844 (the caveat says the "webhook created" and SSRF log lines are both in internal/handlers/source_management.go), README.md line 3223 (the Design file tree lists source_management.go # Webhook CRUD handlers and none of the new files), and the comment at internal/middleware/middleware.go line 135 (same claim as the README caveat). Acceptable: the caveat and the comment name internal/handlers/webhook_create.go for the "webhook created" line and internal/handlers/target_create.go for the SSRF line, and the tree lists the new files in place of the removed one.
internal/handlers/target.go holds only target delete and target toggle, while target create and edit sit in target_create.go and target_edit.go. The bare name reads as "the target handlers", so a reader cannot tell from the file list where delete and toggle are, and it does not follow the target_*.go naming asked for in #274. Acceptable: a name that says what the file holds, for example target_delete.go and target_toggle.go (the second beside the existing target_toggle_test.go), still as pure movement.
Judgement call: the three calls disclosed in the PR body (webhook_* names, ownedWebhook in shared.go, test files keeping their names) are sound; keep them through the rework.
Model: opus-5-5
Review: needs rework.
1. Three places still name the removed file and are now false of the tree: `README.md` line 2844 (the caveat says the "webhook created" and SSRF log lines are both in `internal/handlers/source_management.go`), `README.md` line 3223 (the Design file tree lists `source_management.go # Webhook CRUD handlers` and none of the new files), and the comment at `internal/middleware/middleware.go` line 135 (same claim as the README caveat). Acceptable: the caveat and the comment name `internal/handlers/webhook_create.go` for the "webhook created" line and `internal/handlers/target_create.go` for the SSRF line, and the tree lists the new files in place of the removed one.
2. `internal/handlers/target.go` holds only target delete and target toggle, while target create and edit sit in `target_create.go` and `target_edit.go`. The bare name reads as "the target handlers", so a reader cannot tell from the file list where delete and toggle are, and it does not follow the `target_*.go` naming asked for in https://git.eeqj.de/sneak/webhooker/issues/274. Acceptable: a name that says what the file holds, for example `target_delete.go` and `target_toggle.go` (the second beside the existing `target_toggle_test.go`), still as pure movement.
Judgement call: the three calls disclosed in the PR body (`webhook_*` names, `ownedWebhook` in `shared.go`, test files keeping their names) are sound; keep them through the rework.
Model: opus-5-5
Pure code movement. Every declaration of
internal/handlers/source_management.go moves unchanged into one of:
webhook_list.go, webhook_create.go, webhook_detail.go, webhook_edit.go
and webhook_delete.go for the webhook pages; event_log.go for the event
log; entrypoint.go for the entrypoint handlers; target_create.go,
target_delete.go and target_toggle.go for the target handlers; and
shared.go for the helpers several of them use. Only each file's package
line and imports are new. The README and a middleware comment that
named the removed file now name the new ones.
Model: opus-5-5
The README caveat and the comment in internal/middleware/middleware.go now name internal/handlers/webhook_create.go for the "webhook created" line and internal/handlers/target_create.go for the SSRF line; the README's Design file tree lists every new file in place of source_management.go.
target.go is split into target_delete.go (target delete and its archive writer eviction) and target_toggle.go (target toggle), still pure movement; every declaration of the old file still appears byte for byte in exactly one new file.
The three disclosed judgement calls are kept. The PR body is updated to match.
Model: opus-5-5
Rework:
1. The README caveat and the comment in `internal/middleware/middleware.go` now name `internal/handlers/webhook_create.go` for the "webhook created" line and `internal/handlers/target_create.go` for the SSRF line; the README's Design file tree lists every new file in place of `source_management.go`.
2. `target.go` is split into `target_delete.go` (target delete and its archive writer eviction) and `target_toggle.go` (target toggle), still pure movement; every declaration of the old file still appears byte for byte in exactly one new file.
The three disclosed judgement calls are kept. The PR body is updated to match.
Model: opus-5-5
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.
Pure code movement:
internal/handlers/source_management.gois removed and every declaration in it now sits, unchanged, in one of eleven files. No body, signature, comment or behaviour changed; only each new file's package line and imports are new.webhook_list.go,webhook_create.go,webhook_detail.go,webhook_edit.go,webhook_delete.go: the webhook pages and their helpers. Archive renaming sits with the edit; event database removal and archive writer eviction with the delete.event_log.go: the event log page with its loaders, filters and delivery views, besideevent_log_view.go.entrypoint.go: entrypoint create, edit, delete and toggle.target_create.go: target create and the per-type config builders;target_delete.goandtarget_toggle.go: target delete and toggle.shared.go:parseRetentionDays,ownedWebhook,deleteChildResource,toggleChildResourceandgetUserID.The README caveat and Design file tree and a comment in
internal/middleware/middleware.gonow name the new files instead of the removed one.To check it: split the old file (
git show HEAD~1:internal/handlers/source_management.go) and the eleven new files into their top-level declarations, each with its doc comment, and compare the two sets; each old declaration should appear byte for byte in exactly one new file, and nothing else should be in the new files apart from package lines and imports.Judgement call: the files are named
webhook_*as the plan comment on #274 says, notsource_*as its definition of done says.Judgement call:
ownedWebhookis inshared.go, not a webhook page file as the plan grouped it: its callers are the event log, the event page, event body, resubmit, replay and target edit, none of them a webhook page.Judgement call: the
source_*_test.gofiles keep their names; renaming them is not part of this move.Model: opus-5-5
Review: needs rework.
Three places still name the removed file and are now false of the tree:
README.mdline 2844 (the caveat says the "webhook created" and SSRF log lines are both ininternal/handlers/source_management.go),README.mdline 3223 (the Design file tree listssource_management.go # Webhook CRUD handlersand none of the new files), and the comment atinternal/middleware/middleware.goline 135 (same claim as the README caveat). Acceptable: the caveat and the comment nameinternal/handlers/webhook_create.gofor the "webhook created" line andinternal/handlers/target_create.gofor the SSRF line, and the tree lists the new files in place of the removed one.internal/handlers/target.goholds only target delete and target toggle, while target create and edit sit intarget_create.goandtarget_edit.go. The bare name reads as "the target handlers", so a reader cannot tell from the file list where delete and toggle are, and it does not follow thetarget_*.gonaming asked for in #274. Acceptable: a name that says what the file holds, for exampletarget_delete.goandtarget_toggle.go(the second beside the existingtarget_toggle_test.go), still as pure movement.Judgement call: the three calls disclosed in the PR body (
webhook_*names,ownedWebhookinshared.go, test files keeping their names) are sound; keep them through the rework.Model: opus-5-5
d899186216tof71d3a01a9Rework:
internal/middleware/middleware.gonow nameinternal/handlers/webhook_create.gofor the "webhook created" line andinternal/handlers/target_create.gofor the SSRF line; the README's Design file tree lists every new file in place ofsource_management.go.target.gois split intotarget_delete.go(target delete and its archive writer eviction) andtarget_toggle.go(target toggle), still pure movement; every declaration of the old file still appears byte for byte in exactly one new file.The three disclosed judgement calls are kept. The PR body is updated to match.
Model: opus-5-5
Review passed.
Model: opus-5-5