fen
b0a58d6ca5
Merge pull request 'Settings: dark toggle above theme list; midnight card light/dark rows swapped' ( #134 ) from fix-settings-order into dev
CI / test (push) Successful in 28s
CI / docker (push) Successful in 41s
2026-09-10 13:23:29 +00:00
fen
747eba7064
Settings: dark toggle above theme list; midnight card light row on top ( #132 )
CI / test (pull_request) Successful in 29s
CI / docker (pull_request) Skipped
2026-09-10 08:21:49 -05:00
fen
33ccfd373a
Merge pull request 'Fix invisible select chevron in all presets ( #136 )' ( #151 ) from fix-136-select-chevron into dev
CI / test (push) Successful in 28s
CI / docker (push) Successful in 39s
2026-09-10 04:31:27 +00:00
fen
72dbfb1b3c
Fix invisible select chevron in all presets ( #136 )
...
CI / test (pull_request) Successful in 28s
CI / docker (pull_request) Skipped
Two compounding causes:
- CSP img-src fell back to default-src (self), blocking the data: URI
chevron image on all served pages, so no select ever painted it.
- .editor-head select used the background shorthand, wiping the
background-image set by the later select rule.
Chevron stroke is now a per-preset --chevron token (light stroke for
dark presets, dark for light presets) instead of hardcoded #888 .
CSP gains img-src 'self' data: so the data-URI icons can load.
2026-09-09 23:25:15 -05:00
fen
d44e4d1587
Merge pull request 'Secrets via headers only: drop ?key= and ?password= query fallbacks ( #137 , #141 )' ( #150 ) from fix-137-141-drop-query-secrets into dev
CI / test (push) Successful in 27s
CI / docker (push) Successful in 38s
2026-09-10 04:23:27 +00:00
fen
d013f3965f
Require secrets via headers only: drop ?key= and ?password= query fallbacks ( #137 , #141 )
...
CI / test (pull_request) Successful in 28s
CI / docker (pull_request) Skipped
Query strings leak into Traefik access logs, browser history, and Referer
headers. Admin key is now accepted only via X-Admin-Key; paste and can
passwords only via X-Paste-Password (or the POST unlock form). Tests
updated; new negative cases assert 401 for the query paths.
2026-09-09 23:23:10 -05:00
fen
22c66243d5
Merge fix-38-file-attachments into dev (PR #129 )
CI / test (push) Successful in 28s
CI / docker (push) Successful in 36s
2026-09-09 23:20:48 -05:00
fen
98222e762f
Merge pull request 'History: pagination survives search/sort, pager pinned to page bottom' ( #140 ) from fix-133-paging into dev
CI / test (push) Successful in 28s
CI / docker (push) Successful in 34s
2026-09-10 04:14:20 +00:00
fen
a95ee57000
Merge pull request 'Split new-paste editor header into title pill and settings pill ( #147 )' ( #149 ) from fix-147-header-split into dev
CI / test (push) Successful in 31s
CI / docker (push) Successful in 33s
2026-09-10 04:12:05 +00:00
fen
b096c2073c
Merge pull request 'Fix result box wrap: word boundaries, keep long-token breaking ( #135 )' ( #145 ) from fix-135-result-wrap into dev
CI / test (push) Successful in 27s
CI / docker (push) Successful in 41s
2026-09-10 04:09:13 +00:00
fen
4d50e644b9
Merge pull request 'Fix #146 : untitled paste ID fallback renders as plain text like titled pastes' ( #148 ) from fix-146-id-fallback-plain into dev
CI / test (push) Successful in 27s
CI / docker (push) Successful in 39s
2026-09-10 04:07:04 +00:00
fen
8abf821ce9
Merge pull request 'Admin lock page: replace explanatory paragraph with centered key input' ( #119 ) from fix-admin-lock-center into dev
CI / test (push) Successful in 27s
CI / docker (push) Successful in 32s
2026-09-10 04:01:45 +00:00
fen
da9039b606
Split new-paste editor header into title pill and settings pill ( #147 )
CI / test (pull_request) Successful in 30s
CI / docker (pull_request) Skipped
2026-09-09 22:58:41 -05:00
fen
7dc70d62f6
Fix #146 : render untitled paste ID fallback as plain text like titled pastes
...
CI / test (pull_request) Successful in 26s
CI / docker (pull_request) Skipped
The PASTE column fallback for untitled pastes used the .slug class, which
renders as a monospace chip with a background pill. Give it a dedicated
paste-name modifier that strips the chip styling (background, padding,
radius, mono font) so the fallback looks identical to a titled paste
(var(--fg) plain text). The dedicated ID column and URL column chips keep
their existing styling. Applied to both /history and /mine tables.
2026-09-09 22:56:53 -05:00
fen
0073335875
#38 QA fix: render GetAttachmentForPaste in paste view; dedupe dark-toggle CSS
...
CI / test (pull_request) Successful in 27s
CI / docker (pull_request) Skipped
- renderPaste now looks up the paste's attachment and passes it as
'Attachment' so the paste.html attachment chip/image preview renders
- remove duplicated .iconbtn.dark-toggle blocks (3x from stacked
branches #127/#128) and duplicate mobile-media variants
Verified: go vet + go test pass; live render on :18098 shows
attachment-chip + img src=/f/id/name for a png upload (served 200
image/png) and chip-with-filename, no preview, for an html upload.
2026-09-09 22:53:39 -05:00
fen
fa2e9b1bb5
History: keep pagination over filtered/sorted set, pin pager to page bottom ( #133 )
CI / test (pull_request) Successful in 26s
CI / docker (pull_request) Skipped
2026-09-09 22:48:25 -05:00
fen
9f4ed91b8f
Fix result box wrap: word boundaries instead of break-all ( #135 )
CI / test (pull_request) Successful in 26s
CI / docker (pull_request) Skipped
2026-09-09 22:43:30 -05:00
fen
24482abccc
Merge pull request 'Line wrap toggle for editor and paste viewer ( #130 )' ( #131 ) from fix-130-line-wrap into dev
CI / test (push) Successful in 26s
CI / docker (push) Successful in 44s
2026-09-10 03:39:45 +00:00
fen
7cc6a9c706
Add line wrap toggle for editor and paste viewer ( #130 )
...
CI / test (pull_request) Successful in 27s
CI / docker (pull_request) Skipped
Shared client-side preference in localStorage 'palette-wrap', default
off. Toggle button on /new editor head and paste title bar, plus a Line
wrap checkbox in the settings menu; all read/write the same preference.
Active state uses the accent treatment like other toggles. No em dashes
in UI text.
2026-09-09 22:35:49 -05:00
fen
19cb8d1d45
Merge pull request 'Theme pairs with dark mode toggle, gear active state, PALETTE_DEFAULT_DARK' ( #128 ) from fix-theme-pairs-darkmode into dev
CI / test (push) Successful in 25s
CI / docker (push) Successful in 32s
2026-09-10 03:25:35 +00:00
fen
4948ef9f1c
#38 iteration 1: file attachments, 1 file per paste
...
CI / test (pull_request) Successful in 26s
CI / docker (pull_request) Skipped
- internal/store/blob.go: BlobStore interface + fs implementation with
traversal-safe keys (<paste-id>/<sha256>), put/get/stat/delete
- attachments table migration (id, paste_id, filename sanitized to 255,
mime sniffed server-side, size, sha256, created_at)
- POST /api/pastes now accepts multipart/form-data with a 'file' part;
1 file = 1 paste: file replaces text content when both are sent
- 25 MB per-file limit enforced server-side (413 file_too_large)
- GET /f/{attachment-id}/{filename}: stored sniffed mime, nosniff,
inline only for images/pdf, html/svg/xml forced to text/plain (#34 rule)
- paste view renders attachment chip + inline image preview
- /new: dropzone with file picker, drag-and-drop, Ctrl+V file paste,
file chip with name/size/remove, matches pill/radius design
- tests: blob roundtrip/traversal/sanitize; multipart create (mime
sniffing, client mime ignored, size limit, two-file reject, html/svg
forcing, 404s, password/expiry fields)
2026-09-09 22:21:15 -05:00
fen
dcf2d66a82
Theme pairs with dark mode toggle, gear active state, PALETTE_DEFAULT_DARK ( #127 )
...
CI / test (pull_request) Successful in 25s
CI / docker (pull_request) Skipped
- Collapse the 10 theme cards into 5 pairs: light swatches top row, dark bottom row
- Dark mode toggle in settings and topbar (sun/moon inline SVG)
- Toggling dark mode switches to the other variant of the selected pair
- Persist pair id in localStorage palette-theme, dark flag in palette-dark
- Head script resolves base+dark to variant; URL ?theme= accepts both ids and wins
- Settings gear highlights like nav tabs on /settings
- PALETTE_DEFAULT_DARK env var sets server default dark state (default on)
- Server-side resolution helpers + tests
2026-09-09 22:17:50 -05:00
fen
821f49993f
Theme pairs with dark mode toggle, gear active state, PALETTE_DEFAULT_DARK ( #127 )
...
- Collapse the 10 theme cards into 5 pairs: light swatches top row, dark bottom row
- Dark mode toggle in settings and topbar (sun/moon inline SVG)
- Toggling dark mode switches to the other variant of the selected pair
- Persist pair id in localStorage palette-theme, dark flag in palette-dark
- Head script resolves base+dark to variant; URL ?theme= accepts both ids and wins
- Settings gear highlights like nav tabs on /settings
- PALETTE_DEFAULT_DARK env var sets server default dark state (default on)
- Server-side resolution helpers + tests
2026-09-09 22:17:04 -05:00
fen
f1b5dd0364
Merge pull request 'Remove custom URL reservation note and Can contents menu' ( #126 ) from fix-124-remove-note-can-menu into dev
CI / test (push) Successful in 25s
CI / docker (push) Successful in 40s
2026-09-09 22:05:05 -05:00
fen
8eabeb4839
Merge dev into fix-124: resolve new.html conflict, keep #124 removals and #125 placeholder
CI / test (pull_request) Successful in 25s
CI / docker (pull_request) Skipped
2026-09-09 21:53:00 -05:00
fen
7ed50087a6
Merge pull request 'UI polish: custom URL placeholder, styled buttons/selects, admin link spacing' ( #125 ) from fix-ui-polish into dev
CI / test (push) Successful in 22s
CI / docker (push) Successful in 35s
2026-09-10 02:49:36 +00:00
fen
8104cdba4c
Remove custom URL reservation note and Can contents menu from new paste page
...
CI / test (pull_request) Successful in 25s
CI / docker (pull_request) Skipped
Fixes #124
2026-09-09 21:47:50 -05:00
fen
be3ff81e5c
base
2026-09-09 21:45:42 -05:00
fen
1e317d11da
UI polish: placeholder slash, styled controls, admin link spacing ( #123 )
CI / test (pull_request) Successful in 24s
CI / docker (pull_request) Skipped
2026-09-09 21:45:22 -05:00
fen
2ce50a6393
Merge pull request 'Fix #120 : add matching light/dark variant for every theme' ( #121 ) from fix-theme-variants into dev
CI / test (push) Successful in 27s
CI / docker (push) Successful in 35s
2026-09-10 02:36:47 +00:00
fen
70c284b15d
Fix #120 : add matching light/dark variant for every theme
CI / test (pull_request) Successful in 31s
CI / docker (pull_request) Skipped
2026-09-09 21:33:56 -05:00
fen
0ceeabc810
Merge dev: burn fix, version label, theme persistence, admin/settings UI, theme grid, CSP fix, docs
CI / test (push) Successful in 21s
CI / docker (push) Successful in 47s
v0.3.0
2026-09-09 21:32:30 -05:00
fen
8dde83ff68
Admin lock: replace explanation paragraph with centered key input
CI / test (pull_request) Successful in 28s
CI / docker (pull_request) Skipped
2026-09-09 21:28:11 -05:00
fen
aca99bc6d4
Merge pull request 'Fix #116 : allow inline styles in CSP (style-src)' ( #117 ) from fix-116-csp-inline-styles into dev
CI / test (push) Successful in 22s
CI / docker (push) Successful in 36s
2026-09-10 02:20:53 +00:00
fen
073d39ccba
Fix #116 : allow inline styles in CSP (style-src 'self' 'unsafe-inline')
CI / test (pull_request) Successful in 24s
CI / docker (pull_request) Skipped
2026-09-09 21:18:53 -05:00
fen
9ec7d5152e
Merge pull request 'Fix #114 : theme grid empty (t.colors undefined)' ( #115 ) from fix-114-theme-grid-empty into dev
CI / test (push) Successful in 21s
CI / docker (push) Successful in 42s
2026-09-10 02:01:38 +00:00
fen
a677e627a8
Fix #114 : use presetColors(t.id) for theme card swatches
...
CI / test (pull_request) Successful in 24s
CI / docker (pull_request) Skipped
t.colors was removed by #113 ; rendering threw on first iteration and
the theme grid rendered empty. Use the colors returned by
presetColors(t.id) instead. Verified in headless chromium: 5
theme-card elements render on /settings.
2026-09-09 20:55:13 -05:00
fen
7a2fa00f4a
Merge pull request 'Fix admin lock-on-load, settings hint, theme swatches ( #112 )' ( #113 ) from fix-112-admin-settings-ui into dev
CI / test (push) Successful in 21s
CI / docker (push) Successful in 34s
2026-09-10 00:54:43 +00:00
fen
6b95994c53
Admin lock on every load, drop settings hint, derive theme swatches from CSS vars ( #112 )
CI / test (pull_request) Successful in 24s
CI / docker (pull_request) Skipped
2026-09-09 19:52:32 -05:00
fen
7fde147500
Merge pull request 'Fix theme persistence on reload' ( #109 ) from fix-100-theme-persist into dev
CI / test (push) Successful in 23s
CI / docker (push) Successful in 38s
2026-09-10 00:22:04 +00:00
fen
cf8674b898
Merge pull request 'Fix wiki docs accuracy ( #110 )' ( #111 ) from fix-110-docs-accuracy into dev
CI / test (push) Successful in 21s
CI / docker (push) Successful in 32s
2026-09-10 00:20:17 +00:00
fen
f6e81de2a3
Fix README: build path ./cmd/palette, Go 1.27+, design-doc wiki link ( #110 )
CI / test (pull_request) Successful in 21s
CI / docker (pull_request) Skipped
2026-09-09 19:15:44 -05:00
fen
e17ea4f8c2
Move docs to Gitea wiki; point README links at wiki
CI / test (push) Successful in 21s
CI / docker (push) Skipped
2026-09-09 18:52:41 -05:00
fen
5afe81f34c
README: AI-built disclaimer before feature list
CI / test (push) Successful in 21s
CI / docker (push) Skipped
2026-09-09 18:46:15 -05:00
poslop
097ffb7971
Update README.md
CI / test (push) Successful in 21s
CI / docker (push) Skipped
2026-09-09 23:44:37 +00:00
poslop
815635a973
Update README.md
CI / test (push) Successful in 28s
CI / docker (push) Skipped
2026-09-09 23:42:06 +00:00
fen
df73d56e32
Merge remote-tracking branch 'origin/fix-93-version-label' into dev
CI / test (push) Successful in 28s
CI / docker (push) Successful in 49s
2026-09-09 18:41:26 -05:00
fen
9d89995c91
Merge pull request 'store: burn_after_reads>0 implies burn-after-read ( #82 )' ( #107 ) from fix-82-burn-implies-budget into dev
CI / test (push) Successful in 24s
CI / docker (push) Successful in 37s
2026-09-09 23:40:22 +00:00
fen
805cc3ff2b
web: restore persisted theme on page load ( #100 )
CI / test (pull_request) Successful in 24s
CI / docker (pull_request) Skipped
2026-09-09 18:40:09 -05:00
poslop
f37cc932c4
store: burn_after_reads>0 implies burn-after-read mode ( #82 )
CI / test (pull_request) Successful in 24s
CI / docker (pull_request) Skipped
2026-09-09 18:28:00 -05:00