feat: 0.2.0 — date filter, counts pills, comment button, admin-gated delete #2

Merged
haskos-bot merged 3 commits from feat/ui-improvements into dev 2026-07-19 15:49:24 +00:00
Owner

What

UI changes

Feature Where
Date range picker Toolbar — reported_after + reported_before inputs (default: last 7 days)
Counts in status pills Format: Open (3), Fixed (5) — reflects current date range
'Add comment' button Inline textarea, POSTs to /{bug_id}/comment — no status change
'Delete' button Inline modal with admin password field, POSTs to /{bug_id}/delete

Bug fix

All inline SVG icons now have intrinsic width/height attributes (12 or 14px). Previously they relied solely on Tailwind's size-* classes, which Tailwind v4 does NOT scan inside node_modules — so icons rendered at 100% of their parent and appeared huge in consumer apps.

Client API additions

client.listQueue({ reportedAfter, reportedBefore })
client.getCounts({ reportedAfter, reportedBefore })
client.addComment(bugId, { text })
client.deleteBug(bugId, { admin_password })

New hooks

  • useBugCounts(client, { reportedAfter, reportedBefore })
  • useAddComment(client)
  • useDeleteBug(client)

Existing hooks (useConfirmFixed, useMarkStillBroken) now also invalidate the counts query on success.

Why

Superclean /testing page needs:

  1. Date range filter — legacy bugs cluttering the queue
  2. Per-status counts in the filter pills
  3. Add comment button (separate from Confirm Fixed / Still Broken)
  4. Delete button (admin-only, hidden behind password)
    Plus a bug we discovered live: the IconMail chip was rendering at 100% size of its parent on superclean.haskytech.com/testing.

Spec Drift Callouts

None — all new endpoints are additive. Existing consumers without setting the new optional props continue to work as before.

Depends on

Both must be merged & deployed before this package's new features work end-to-end. The package can ship first; the new endpoints just return 404 until kernel lands.

Publish Runbook

After merge to dev:

  • Bump version on main if needed (already 0.2.0 in this PR)
  • CI publishes 0.2.0 to Forgejo npm registry
  • Smoke test: import in a consumer app and verify /counts call works
## What ### UI changes | Feature | Where | |---|---| | Date range picker | Toolbar — `reported_after` + `reported_before` inputs (default: last 7 days) | | Counts in status pills | Format: `Open (3)`, `Fixed (5)` — reflects current date range | | 'Add comment' button | Inline textarea, POSTs to `/{bug_id}/comment` — no status change | | 'Delete' button | Inline modal with admin password field, POSTs to `/{bug_id}/delete` | ### Bug fix All inline SVG icons now have intrinsic `width`/`height` attributes (12 or 14px). Previously they relied solely on Tailwind's `size-*` classes, which Tailwind v4 does NOT scan inside `node_modules` — so icons rendered at 100% of their parent and appeared huge in consumer apps. ### Client API additions ```ts client.listQueue({ reportedAfter, reportedBefore }) client.getCounts({ reportedAfter, reportedBefore }) client.addComment(bugId, { text }) client.deleteBug(bugId, { admin_password }) ``` ### New hooks - `useBugCounts(client, { reportedAfter, reportedBefore })` - `useAddComment(client)` - `useDeleteBug(client)` Existing hooks (`useConfirmFixed`, `useMarkStillBroken`) now also invalidate the counts query on success. ## Why Superclean /testing page needs: 1. Date range filter — legacy bugs cluttering the queue 2. Per-status counts in the filter pills 3. Add comment button (separate from Confirm Fixed / Still Broken) 4. Delete button (admin-only, hidden behind password) Plus a bug we discovered live: the `IconMail` chip was rendering at 100% size of its parent on superclean.haskytech.com/testing. ## Spec Drift Callouts None — all new endpoints are additive. Existing consumers without setting the new optional props continue to work as before. ## Depends on - haskytech/haskytech-modules-py#37 (Python `haskytech-retest-queue==0.2.0` provides the backend endpoints this package calls) - haskytech/smeos#1414 (kernel-side date params + counts endpoint) Both must be merged & deployed before this package's new features work end-to-end. The package can ship first; the new endpoints just return 404 until kernel lands. ## Publish Runbook After merge to `dev`: - [ ] Bump version on `main` if needed (already 0.2.0 in this PR) - [ ] CI publishes 0.2.0 to Forgejo npm registry - [ ] Smoke test: import in a consumer app and verify `/counts` call works
feat: 0.2.0 — date filter, counts pills, comment button, admin-gated delete
Some checks failed
CI / Backend (pull_request) Failing after 8s
3a5ae7f2b7
UI changes:
- Toolbar: date range picker (reported_after + reported_before, default last 7 days)
- Status filter pills now show (count) next to the label — counts fetched via
  the new /counts endpoint and reflect the currently-applied date range
- New 'Add comment' button on each bug card — opens an inline textarea that
  POSTs to /{bug_id}/comment. Distinguished from 'Still broken' which both
  adds a note AND reopens; 'Add comment' leaves the status untouched.
- New 'Delete' button (trash icon) — opens an inline confirmation block with
  an admin password field. Calls /{bug_id}/delete with the password.

Bug fixes:
- All inline SVG icons now have intrinsic width/height attributes (12 or 14).
  Previously they relied solely on Tailwind's 'size-*' classes, which Tailwind
  v4 does NOT scan inside node_modules — meaning icons rendered at 100% size
  of their parent and were visually huge in consumer apps.

New client methods (RetestQueueClient):
- listQueue({ reportedAfter, reportedBefore })
- getCounts({ reportedAfter, reportedBefore })
- addComment(bugId, { text })
- deleteBug(bugId, { admin_password })

New hooks:
- useBugCounts(client, { reportedAfter, reportedBefore })
- useAddComment(client)
- useDeleteBug(client)

Existing hooks (useConfirmFixed, useMarkStillBroken) now also invalidate the
counts query on success, so the pill counts stay in sync after mutations.

Version bump: 0.1.1 → 0.2.0 (additive: new endpoints, new optional hooks,
new optional RetestQueueProps defaults — no breaking changes to existing
consumers)
ci: retry — runner picked wrong image on previous run
Some checks failed
CI / Backend (pull_request) Failing after 8s
1dee822afb
ci: enable pnpm via corepack (fixes forge-host-runner image issue)
Some checks failed
CI / Backend (pull_request) Has been cancelled
4f2f5fb83e
forge-host-runner resolves the 'ci' label to node:22-bookworm (the base
image) instead of forgejo.haskytech.com/haskytech/forgejo-ci:latest (which
has pnpm pre-installed). This causes 'pnpm: command not found' failures
on that runner. corepack ships with Node 22 and provides pnpm without
extra setup, sidestepping the runner misconfiguration.

Proper fix is at the runner config level — track separately. This workaround
still keeps the workflow portable across both runners.
haskos-bot deleted branch feat/ui-improvements 2026-07-19 15:49:24 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
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
haskytech/retest-queue!2
No description provided.