the expansion caret on the log viewer doesn't collapse the event. clicking anything in that row (such as the content type or uuid) should also expand/collapse it.
Definition of done, on the event log viewer:
Clicking the caret on an expanded event collapses it; clicking it again expands it.
Clicking anywhere else in the event's row (the content type, the UUID, any cell) toggles it the same way.
Selecting text in the row (e.g. to copy the UUID) does not toggle it; links or buttons inside the row keep their own action and do not toggle it.
The row can be toggled from the keyboard too (focusable, Enter or Space), and the caret shows the current state.
A browser test (headless Chrome) clicks the caret and a non-caret cell and checks that both expand and collapse.
Model: opus-5-5
sneak, 2026-09-29 in chat (verbatim):
> the expansion caret on the log viewer doesn't collapse the event. clicking anything in that row (such as the content type or uuid) should also expand/collapse it.
Definition of done, on the event log viewer:
- Clicking the caret on an expanded event collapses it; clicking it again expands it.
- Clicking anywhere else in the event's row (the content type, the UUID, any cell) toggles it the same way.
- Selecting text in the row (e.g. to copy the UUID) does not toggle it; links or buttons inside the row keep their own action and do not toggle it.
- The row can be toggled from the keyboard too (focusable, Enter or Space), and the caret shows the current state.
- A browser test (headless Chrome) clicks the caret and a non-caret cell and checks that both expand and collapse.
Model: opus-5-5
clawbot
self-assigned this 2026-09-29 11:34:51 +02:00
Plan. The event log viewer is templates/source_logs.html, with its handler in internal/handlers/source_management.go. The page uses Alpine.js.
Toggle: one Alpine state per row. The caret and the row both toggle it, and the caret reflects it (for example with aria-expanded).
Text selection: a click that ends a text selection does not toggle; check window.getSelection() for a non-empty selection.
Links and buttons: a click on a link or button inside the row does its own action and does not toggle.
Keyboard: the row is focusable, and Enter or Space toggles it.
Styling:static/css/tailwind.css is the compiled Tailwind stylesheet and is committed. A class the page uses must already be in that file. If it is not, prefer a small plain rule in static/css/style.css. Regenerate tailwind.css only through make css, and disclose it on the PR if you do (the unpinned tool is #231).
Browser checks: headless Chrome in a container, with a small data set built in batches (the standing RAM cap), the container named with webhooker and your role, removed afterwards. Publish no screenshots or logs on the tracker.
#349 changes the same view and runs after this lands.
Model: opus-5-5
Plan. The event log viewer is `templates/source_logs.html`, with its handler in `internal/handlers/source_management.go`. The page uses Alpine.js.
- **Toggle:** one Alpine state per row. The caret and the row both toggle it, and the caret reflects it (for example with `aria-expanded`).
- **Text selection:** a click that ends a text selection does not toggle; check `window.getSelection()` for a non-empty selection.
- **Links and buttons:** a click on a link or button inside the row does its own action and does not toggle.
- **Keyboard:** the row is focusable, and Enter or Space toggles it.
- **Styling:** `static/css/tailwind.css` is the compiled Tailwind stylesheet and is committed. A class the page uses must already be in that file. If it is not, prefer a small plain rule in `static/css/style.css`. Regenerate `tailwind.css` only through `make css`, and disclose it on the PR if you do (the unpinned tool is https://git.eeqj.de/sneak/webhooker/issues/231).
- **Browser checks:** headless Chrome in a container, with a small data set built in batches (the standing RAM cap), the container named with `webhooker` and your role, removed afterwards. Publish no screenshots or logs on the tracker.
- https://git.eeqj.de/sneak/webhooker/issues/349 changes the same view and runs after this lands.
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.
sneak, 2026-09-29 in chat (verbatim):
Definition of done, on the event log viewer:
Model: opus-5-5
Plan. The event log viewer is
templates/source_logs.html, with its handler ininternal/handlers/source_management.go. The page uses Alpine.js.aria-expanded).window.getSelection()for a non-empty selection.static/css/tailwind.cssis the compiled Tailwind stylesheet and is committed. A class the page uses must already be in that file. If it is not, prefer a small plain rule instatic/css/style.css. Regeneratetailwind.cssonly throughmake css, and disclose it on the PR if you do (the unpinned tool is #231).webhookerand your role, removed afterwards. Publish no screenshots or logs on the tracker.Model: opus-5-5