Skip to content

Development#18

Merged
kenken64 merged 7 commits intomainfrom
development
Jan 28, 2026
Merged

Development#18
kenken64 merged 7 commits intomainfrom
development

Conversation

@kenken64
Copy link
Copy Markdown
Owner

No description provided.

kenken64 and others added 7 commits January 28, 2026 13:37
Flatten the card structure so schedule info and metadata sit below
the header row instead of nested inside a flex child. Shrink action
buttons to fixed 32px squares, add flex-wrap to metadata, and add
whitespace-pre-wrap + min-w-0 to the error message for proper text
wrapping on narrow screens.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add a monthly calendar grid that visualizes when scheduled jobs run.
Users toggle between list and calendar views via a segmented control.
Each day shows color-coded dots (blue=once, teal=daily, violet=weekly,
red=error, faded=disabled) and clicking a day opens a popover with
job details.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Popover now flips above the cell when there isn't enough room below,
  preventing it from overlapping the legend row
- Legend items use whitespace-nowrap and shrink-0 dots to prevent
  text truncation
- Legend renders at z-51 so the popover never obscures it
- Added missing error/disabled translation keys (EN + ZH)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Show a badge next to the month label (e.g. "5 jobs") when the
  displayed month has scheduled generations
- Add small dot indicators on the prev/next navigation buttons
  when adjacent months contain scheduled jobs
- Helper `countJobsInMonth` efficiently checks daily, weekly, and
  one-time jobs against a given year/month
- Added scheduledSingular/scheduledPlural translation keys (EN + ZH)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The day-detail popover (position:fixed) was covering the legend row
below the grid. Relocated the legend between the header and the grid
so the popover can never obscure it.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add multi-select mode to the Gallery page with bulk delete (up to 50),
bulk export as ZIP with format conversion (up to 20), and bulk share
via a public gallery page with OG meta tags. Includes floating action
bar, inline delete confirmation, select-all toggle, and Escape to exit.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
generateShareId() uses randomBytes(8) which is statistically safe, but
the UNIQUE constraint on share_id could cause an unhandled error on
collision. Adds a 5-attempt retry loop with existence check. Also wraps
the gallery record + image inserts in a db.transaction() so concurrent
requests cannot leave orphaned partial records.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@kenken64 kenken64 merged commit 5fd7070 into main Jan 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant