Commit Graph

  • 073d39ccba Fix #116: allow inline styles in CSP (style-src 'self' 'unsafe-inline') fen 2026-09-09 21:18:53 -05:00
  • 9ec7d5152e Merge pull request 'Fix #114: theme grid empty (t.colors undefined)' (#115) from fix-114-theme-grid-empty into dev fen 2026-09-10 02:01:38 +00:00
  • a677e627a8 Fix #114: use presetColors(t.id) for theme card swatches fen 2026-09-09 20:55:13 -05:00
  • 7a2fa00f4a Merge pull request 'Fix admin lock-on-load, settings hint, theme swatches (#112)' (#113) from fix-112-admin-settings-ui into dev fen 2026-09-10 00:54:43 +00:00
  • 6b95994c53 Admin lock on every load, drop settings hint, derive theme swatches from CSS vars (#112) fen 2026-09-09 19:52:32 -05:00
  • 7fde147500 Merge pull request 'Fix theme persistence on reload' (#109) from fix-100-theme-persist into dev fen 2026-09-10 00:22:04 +00:00
  • cf8674b898 Merge pull request 'Fix wiki docs accuracy (#110)' (#111) from fix-110-docs-accuracy into dev fen 2026-09-10 00:20:17 +00:00
  • f6e81de2a3 Fix README: build path ./cmd/palette, Go 1.27+, design-doc wiki link (#110) fen 2026-09-09 19:15:44 -05:00
  • e17ea4f8c2 Move docs to Gitea wiki; point README links at wiki fen 2026-09-09 18:52:41 -05:00
  • 5afe81f34c README: AI-built disclaimer before feature list fen 2026-09-09 18:46:15 -05:00
  • 097ffb7971 Update README.md poslop 2026-09-09 23:44:37 +00:00
  • 815635a973 Update README.md poslop 2026-09-09 23:42:06 +00:00
  • df73d56e32 Merge remote-tracking branch 'origin/fix-93-version-label' into dev fen 2026-09-09 18:41:26 -05:00
  • 9d89995c91 Merge pull request 'store: burn_after_reads>0 implies burn-after-read (#82)' (#107) from fix-82-burn-implies-budget into dev fen 2026-09-09 23:40:22 +00:00
  • 805cc3ff2b web: restore persisted theme on page load (#100) fen 2026-09-09 18:40:09 -05:00
  • f37cc932c4 store: burn_after_reads>0 implies burn-after-read mode (#82) poslop 2026-09-09 18:28:00 -05:00
  • 65ed0c7043 Show actual version in topbar instead of hardcoded beta (Fixes #93) agent 2026-09-09 18:27:57 -05:00
  • 8ecf5338d5 CI: build dev image on dev branch pushes (palette-dev deploy) poslop 2026-09-09 18:22:31 -05:00
  • 69da340224 Settings page: theme switcher with live preview (#100) poslop 2026-09-09 18:21:33 -05:00
  • b1af398bea Update README.md poslop 2026-09-09 22:56:50 +00:00
  • 15f199b2fe README: trim to brief front page + retake themed screenshots (#106) poslop 2026-09-09 17:30:54 -05:00
  • 9df6224a27 Result box: color-code by status + friendly error messages from error codes (#105) poslop 2026-09-09 17:28:25 -05:00
  • c35531e03e Settings page: small muted Admin link (#102) poslop 2026-09-09 17:17:00 -05:00
  • be2b4fb47f Sort arrows: left of label, further spaced, vertically centered, no label shift (#101) poslop 2026-09-09 17:17:00 -05:00
  • 064f05536a Admin page: validate key before persisting to sessionStorage (#99) poslop 2026-09-09 17:17:00 -05:00
  • 4175ffef3e CSS: inline sort arrow with uniform 8px gap (#103), full-pill slug roundness (#104) poslop 2026-09-09 17:10:24 -05:00
  • ea9edc211a UI: consistent sort arrow gap, uniform pill roundness (slug -> radius-sm) poslop 2026-09-09 16:50:06 -05:00
  • 6d467312af Merge minor fixes: #92-#98, #100 theme switcher + cans work poslop 2026-09-09 16:40:53 -05:00
  • b21be29daa minor fixes: version label (#93), view dedupe tests (#95) poslop 2026-09-09 16:40:53 -05:00
  • cd70dd0b0e Merge origin/main (license, compose, #65 leak guard) into cans work poslop 2026-09-09 16:39:14 -05:00
  • 5b9be808ed Merge origin/main: keep can listing rows with #65 password-metadata leak guard poslop 2026-09-09 16:36:55 -05:00
  • 19804d47a3 Cans UI + parity: unlock-cookie flow, /can page, listings badge, custom slug, delete, sweeper; #32 perf notes (#4, #32) poslop 2026-09-09 16:34:51 -05:00
  • ffc10c2b86 README: link to docker-compose example poslop 2026-09-09 16:16:28 +00:00
  • bf5a79878f add example docker-compose.yml documenting all env vars poslop 2026-09-09 16:16:15 +00:00
  • 60200ac14b README: license section with as-is / no-liability disclaimer poslop 2026-09-09 16:12:41 +00:00
  • 49f7b6e7a4 add AGPLv3 license with copyright and warranty disclaimer notice poslop 2026-09-09 16:12:19 +00:00
  • 959a83be1e Merge pull request 'Bound title and language at create time (#86)' (#91) from fix-86-field-bounds into main v0.2.2 poslop 2026-09-09 15:59:32 +00:00
  • 5b068faf8f Merge pull request 'ratelimit: rightmost untrusted-hop-safe client IP (fixes #85)' (#89) from fix-85-xff into main poslop 2026-09-09 15:59:29 +00:00
  • b0360af79c Merge pull request 'Fix #83: create API ignores boolean public field' (#88) from fix-83-public-false into main poslop 2026-09-09 15:59:26 +00:00
  • 806798fae6 Merge pull request 'Rate-limit all password verification attempts (#81)' (#90) from fix-81-password-ratelimit into main poslop 2026-09-09 15:59:24 +00:00
  • 8977c05cda Merge pull request 'fix #84: security headers were silently dropped (set pre-handler)' (#87) from fix-84-headers-prewrite into main poslop 2026-09-09 15:59:21 +00:00
  • 389e4d333f Bound title and language at create time (#86) fen 2026-09-09 10:58:34 -05:00
  • 99a044e8a2 Rate-limit all password verification attempts (#81) fen 2026-09-09 10:58:21 -05:00
  • 3d1d5ee1fd ratelimit: key on rightmost X-Forwarded-For entry (fixes #85) agent 2026-09-09 10:57:59 -05:00
  • ccb22a2d28 #83: accept boolean public field in create API (false->unlisted, true->public) Hermes Agent 2026-09-09 10:57:56 -05:00
  • 3d415edbdc fix #84: security headers dropped because they were set post-flush; set pre-handler fen 2026-09-09 10:54:16 -05:00
  • 7ca1b58362 Merge pull request 'docs: attachments & storage backend design (#38, #31)' (#69) from issue-38-31-storage-design into main v0.2.1 poslop 2026-09-09 14:27:50 +00:00
  • 8d0825ac09 Merge pull request 'docs: cookie-based preferences and access keys design (#30)' (#70) from issue-30-cookie-design into main poslop 2026-09-09 14:27:14 +00:00
  • 4cb8a3e127 Merge pull request 'Search: loading indicator and performance note (#32)' (#72) from issue-32-search-indicator into main poslop 2026-09-09 14:26:25 +00:00
  • 91dbf6f344 Merge pull request 'fix: input validation gaps (#68)' (#78) from issue-68-input-validation into main poslop 2026-09-09 14:26:19 +00:00
  • b600cdf51a Merge pull request 'Admin key endpoint: per-IP rate limiting and lockout (#66)' (#73) from issue-66-admin-ratelimit into main poslop 2026-09-09 14:26:13 +00:00
  • 47c9fa6386 Merge pull request 'Clamp expires_in at API boundary (#60)' (#74) from issue-60-expiry-clamp into main poslop 2026-09-09 14:26:07 +00:00
  • b7d1119d6d Merge pull request 'docs: design for optional client-side E2E encryption (issue #39)' (#75) from issue-39-e2e-design into main poslop 2026-09-09 14:26:02 +00:00
  • 44fe3c5772 Merge pull request 'Security headers middleware: CSP, Referrer-Policy, nosniff (#59)' (#76) from issue-59-security-headers into main poslop 2026-09-09 14:26:01 +00:00
  • 556d0fa2e1 Merge pull request 'fix #63: require deletion token on DELETE /api/pastes/{id}' (#79) from issue-63-delete-auth into main poslop 2026-09-09 14:25:40 +00:00
  • bdd5235f2e Merge pull request 'fix: atomic burn-after-read claim (#58)' (#77) from issue-58-burn-race into main poslop 2026-09-09 14:25:06 +00:00
  • 91568c0598 fix #63: require deletion token on DELETE /api/pastes/{id} poslop 2026-09-09 09:21:28 -05:00
  • 94a4a3c2ec fix: input validation gaps (#68) agent 2026-09-09 09:21:25 -05:00
  • 78374b2d49 fix: atomic burn-after-read claim (#58) agent 2026-09-09 09:18:42 -05:00
  • e08cafe9c8 security headers middleware: CSP, Referrer-Policy, nosniff on HTML pages (#59) palette-agent 2026-09-09 09:16:42 -05:00
  • 2159982795 docs: design for optional client-side E2E encryption (issue #39) Hermes Agent 2026-09-09 09:16:13 -05:00
  • bb5c4f0186 fix #60: apply ValidExpiry clamp to cans create handler (was lost in working tree) fen 2026-09-09 09:15:39 -05:00
  • 9811191648 admin: per-IP rate limit (5/min) on admin key attempts (#66) palette-agent 2026-09-09 09:15:01 -05:00
  • 5a2aa0f96d docs: design note for cookie-based preferences and access keys (#30) poslop 2026-09-09 09:13:07 -05:00
  • c288fc73a7 Search: spinner indicator + performance note on client-side filtering (#32) poslop 2026-09-09 09:13:40 -05:00
  • f6c4342468 Exclude password-protected pastes from public listings (#65) Hermes Agent 2026-09-09 09:13:26 -05:00
  • f611cc3e9e fix #60: clamp expires_in on cans API (400 on zero/negative, cap 1yr) poslop 2026-09-09 09:13:21 -05:00
  • 594b5f01aa docs: attachments & storage backend design (#38, #31) poslop 2026-09-09 09:10:15 -05:00
  • 03bf327f6b fix: anchor gitignore binary pattern, track cmd/palette v0.2.0 poslop 2026-09-09 02:04:03 -05:00
  • a604c5906a fix: track cmd/palette (was untracked after refactor), untrack committed binary poslop 2026-09-09 02:02:57 -05:00
  • 2c1b2818a8 CI: use static docker CLI download (no apt package in bookworm) poslop 2026-09-09 01:53:30 -05:00
  • b1187e061f CI: install docker CLI in docker job (debian image lacks it) poslop 2026-09-09 01:45:53 -05:00
  • 4f1e901f04 Refactor: split monolith into cmd/palette + internal/{store,api,web,lang} (#35) poslop 2026-09-09 01:33:39 -05:00
  • a3349b4a98 Admin endpoint: ENV/file admin key, --reset-admin-key, settings API wired into ratelimit/max-bytes/default-expiry/burn-window (#40) poslop 2026-09-09 00:44:02 -05:00
  • 03600b2ed5 sweep: fix missing view_count on HTML views, API expiry bounds, search ignoring custom slug (#33) poslop 2026-09-09 00:34:24 -05:00
  • cb23707125 pentest: bind unlock cookie to HMAC per-paste token; serve only safe content types on /raw and can items with nosniff (#34) poslop 2026-09-09 00:14:01 -05:00
  • 15ce7ff011 Fix unclosed composeCustomExpiry brace that broke page JS (#48) poslop 2026-09-08 23:58:54 -05:00
  • 238dc96454 README rework: user-first structure, features, screenshots, config table; API detail moved to docs/API.md (#47) poslop 2026-09-08 23:54:54 -05:00
  • d5a47b1a31 Burn after N reads: reads_limit/reads_used, per-viewer 15min dedupe via paste_views, reads_remaining in API+stats pill, raw counts as read (#49) poslop 2026-09-08 23:54:03 -05:00
  • 127c12c79a Custom expiry: Custom radio with number+unit select, client-side validation 1min-1year, Go-duration composition (#48) poslop 2026-09-08 23:54:03 -05:00
  • 2e1ce508fa Saved page: live search + sortable columns via shared table module (#57) poslop 2026-09-08 22:39:41 -05:00
  • 76d7ac12e7 Small fixes: gutter alignment, paste column, sort arrows, copy feedback, stats bar, title slug (#50-#55) poslop 2026-09-08 22:35:43 -05:00
  • 129934b645 My pastes page /mine with anonymous viewer cookie (#37) poslop 2026-09-08 22:10:05 -05:00
  • e83303a428 Consistency audit: shared input/button/heading tokens across pages (#18) poslop 2026-09-08 22:00:21 -05:00
  • acf71f7444 Palettes: pastel-lavender/peach/cloud presets + semantic status colors (#16) poslop 2026-09-08 21:56:36 -05:00
  • 9c4689e6de Mobile responsiveness: media query for 375-640px across topbar, deck, history, paste view, unlock (#45) poslop 2026-09-08 21:45:42 -05:00
  • ebcf7eec80 Live relative-time counters via shared [data-ts] ticker in layout foot (#46) poslop 2026-09-08 21:41:29 -05:00
  • b3112d2a35 History: sortable column headers with client-side sort (#42) poslop 2026-09-08 21:36:53 -05:00
  • 6a6f4d1587 History: URL + ID columns at end, custom_slug in /api/public (#44) poslop 2026-09-08 21:33:08 -05:00
  • e31aa44ecb History: paste name under Paste column, drop Description column (#43) poslop 2026-09-08 21:32:10 -05:00
  • 5b7198fb3c Settings gear in topbar linking to placeholder /settings page (#36) poslop 2026-09-08 21:27:02 -05:00
  • efa8c7145c Language detection: switch to go-enry with hint-seeded classifier (#41) poslop 2026-09-08 21:25:36 -05:00
  • 7410b5c9cf Paste view: collapsible stats pill under title (#17) poslop 2026-09-08 21:14:44 -05:00
  • 3facff3d1e Syntax highlighting, rate limiting, creator auto-unlock (#1, #2, #26) poslop 2026-09-08 21:09:25 -05:00
  • 9d75d2f80d password reveal: slash through eye icon while password hidden poslop 2026-09-08 20:55:25 -05:00
  • 6b21f997b5 gitignore: exclude binary and live SQLite WAL files poslop 2026-09-08 20:53:26 -05:00
  • 103a7a6af5 UI batch 1: copy toast, protection/custom-url spacing, pw reveal, SVG icons, unlock redesign, bfcache result reset, search spinner (#19-#25,#27,#28,#32) poslop 2026-09-08 20:52:25 -05:00
  • 1f162c4003 sweeper: release custom URLs on expiry and after 30-day reservation (#29) poslop 2026-09-08 20:50:40 -05:00
  • 0bbe65ce05 capitalization: fix placeholder casing (#12) poslop 2026-09-08 20:29:37 -05:00
  • db17bd20b0 UI polish: radius tokens, layered shadows, pill selections, default filenames, live search, hidden result card, em dash removal poslop 2026-09-08 20:28:13 -05:00