-
8dbe564ca2
fix(write): 骨架屏与实际页面结构对齐
master
xfy
2026-06-11 18:12:35 +08:00
-
75e0659cb2
fix(admin): 后台管理页改为 CSR 避免闪烁
xfy
2026-06-11 18:04:07 +08:00
-
ea440cd61c
fix(admin): 评论管理页改为 CSR 避免按钮点击闪烁
xfy
2026-06-11 17:34:39 +08:00
-
569eec5bf8
fix(admin): 评论管理页多项修复
xfy
2026-06-11 16:10:42 +08:00
-
b55409d421
fix(comments): remove admin action buttons from public comment item
xfy
2026-06-11 15:47:46 +08:00
-
3e95353cc5
fix(comments): nest pending replies under parent comments
xfy
2026-06-11 15:35:14 +08:00
-
44a738a940
fix(comments): migrate from use_server_future to use_resource
xfy
2026-06-11 15:19:37 +08:00
-
2b36a7c669
fix: resolve WASM compilation errors
xfy
2026-06-11 14:55:10 +08:00
-
aa68dc4c55
fix(comments): address code quality issues in CommentForm
xfy
2026-06-11 14:49:48 +08:00
-
f855a9a6cd
fix(comments): fix compilation errors in list.rs and pending_item.rs
xfy
2026-06-11 14:45:48 +08:00
-
792b06a2eb
fix(comments): address code quality issues in list and pending_item
xfy
2026-06-11 14:42:03 +08:00
-
8ae3299b3e
feat(comments): add PendingCommentItem component
xfy
2026-06-11 14:36:05 +08:00
-
12a91e3b8e
feat(comments): merge approved and pending comments in CommentList
xfy
2026-06-11 14:34:36 +08:00
-
9e658662cb
fix(comments): add error logging for check_pending_status failure
xfy
2026-06-11 14:33:13 +08:00
-
40cfd44d3a
feat(comments): add pending_comments to CommentContext and sync on mount
xfy
2026-06-11 14:30:49 +08:00
-
0f3d9fc25c
fix(hooks): address code quality issues in comment_storage
xfy
2026-06-11 14:28:27 +08:00
-
fccd4c05ff
feat(hooks): add comment_storage module for localStorage persistence
xfy
2026-06-11 14:23:27 +08:00
-
7b3d894e96
feat(api): add CheckPendingStatus server function
xfy
2026-06-11 14:18:49 +08:00
-
d63cee58c2
feat(api): return comment_id, avatar_url, depth from create_comment
xfy
2026-06-11 14:13:14 +08:00
-
03054d83e8
docs: add implementation plan for comment localStorage feature
xfy
2026-06-11 14:07:58 +08:00
-
fbda6373cc
docs: add comment localStorage persistence + pending visibility design spec
xfy
2026-06-11 13:52:28 +08:00
-
880c53d2a4
fix(comments): show name/email/url fields in reply form
xfy
2026-06-11 13:30:54 +08:00
-
ec2f3e313e
refactor(comments): remove consented_at column from migration and model
xfy
2026-06-11 13:24:00 +08:00
-
59d5b9222a
refactor(comments): remove privacy consent checkbox and consented param
xfy
2026-06-11 13:22:57 +08:00
-
358dff152d
fix(error): use Debug formatting in AppError logs for full error chain visibility
xfy
2026-06-11 13:19:18 +08:00
-
c10134c32e
fix(comments): convert confirm_with_message Result to Option for WASM compatibility
xfy
2026-06-11 13:15:17 +08:00
-
04737300e6
feat(comments): add complete comment system with guest commenting, moderation, and admin UI
xfy
2026-06-11 12:34:26 +08:00
-
efa41b42c2
feat(auth): add loading state to login/register forms and update AGENTS.md
xfy
2026-06-11 10:44:27 +08:00
-
f9d23d1eed
refactor(ui): redesign with warm palette, sage accent, and consistent theme vars
xfy
2026-06-11 10:29:11 +08:00
-
fce16288b5
chore: symlink CLAUDE.md to AGENTS.md
xfy
2026-06-11 10:01:01 +08:00
-
fcb5a127d4
feat(skills): add multi-style design skills from taste-skill repo
xfy
2026-06-11 09:53:15 +08:00
-
ccd564312b
feat: hash session tokens and enforce configurable session limit per user
xfy
2026-06-11 09:45:56 +08:00
-
5be0cab525
feat: add hash_token function for SHA-256 session token hashing
xfy
2026-06-11 09:44:01 +08:00
-
81555d920e
refactor: sessions table stores token hash instead of plaintext
xfy
2026-06-11 09:42:32 +08:00
-
1fa379fe4a
chore: add sha2 and hex dependencies for session token hashing
xfy
2026-06-11 09:42:08 +08:00
-
9cf6a7e4e6
fix(admin): replace use_delayed_loading with DelayedSkeleton for posts page
xfy
2026-06-10 18:15:46 +08:00
-
265eb15887
feat(admin): add pagination to posts management page
xfy
2026-06-10 18:03:36 +08:00
-
373d4f09ed
refactor: clean up write page formatting and remove separator line
xfy
2026-06-10 17:50:07 +08:00
-
d3c5653808
feat: redesign admin write page with fixed-height editor layout
xfy
2026-06-10 17:29:41 +08:00
-
24f00184a5
删除 public/tiptap/editor.css 构建产物
xfy
2026-06-10 16:51:51 +08:00
-
b1a5fdcb6e
chore: release v0.2.0
v0.2.0
xfy
2026-06-10 15:46:11 +08:00
-
2f433e8f11
feat: add 404 Not Found page
xfy
2026-06-10 15:43:05 +08:00
-
a59a58b41d
Add frontend-design skill, remove design-taste-frontend
xfy
2026-06-10 15:24:33 +08:00
-
5e2487a067
fix: gate helper imports with #[cfg(feature = "server")] in posts API
xfy
2026-06-10 14:49:54 +08:00
-
311ddbe204
perf(cache): cache COUNT(*) result separately to avoid redundant queries
xfy
2026-06-10 14:44:53 +08:00
-
bd9053132b
refactor(admin): use explicit field ignores and separate error/loading arms
xfy
2026-06-10 14:38:52 +08:00
-
7df69be5e8
feat(skills): replace frontend-design with design-taste-frontend
xfy
2026-06-10 14:36:30 +08:00
-
31b83cd449
chore: adapt admin pages to new PostListResponse shape
xfy
2026-06-10 14:32:59 +08:00
-
a2ec043c59
chore: adapt search page to new PostListResponse shape
xfy
2026-06-10 14:29:17 +08:00
-
4015412b41
feat: display accurate total in tag detail page
xfy
2026-06-10 14:25:54 +08:00
-
2ade51bd0f
feat: display accurate total in archives page
xfy
2026-06-10 14:22:18 +08:00
-
a2b0c759af
feat: use total count for accurate home page pagination
xfy
2026-06-10 14:18:22 +08:00
-
44eba24121
feat: return total count from post list server functions
xfy
2026-06-10 14:14:04 +08:00
-
116f3281a4
feat: update post list cache to store total count
xfy
2026-06-10 13:59:41 +08:00
-
72c1efa566
feat: add total field to PostListResponse
xfy
2026-06-10 13:57:06 +08:00
-
b1385efd5e
refactor(api): split posts.rs into module directory
xfy
2026-06-10 13:45:21 +08:00
-
2574e1e315
fix(api): gate AppError helper methods behind server feature
xfy
2026-06-10 13:21:37 +08:00
-
bf401e4916
fix(api): correct AppError variant semantics for transaction/query errors
xfy
2026-06-10 13:19:57 +08:00
-
a3fa602df2
refactor(api): unify error handling with AppError enum
xfy
2026-06-10 13:16:06 +08:00
-
b7220c28ef
Fix WebpError trait impls missing #[cfg(feature = "server")]
xfy
2026-06-09 18:30:10 +08:00
-
263771e403
test(cache): fix invalidation test isolation
xfy
2026-06-09 17:24:14 +08:00
-
73b4d28135
test(cache): use unique key in roundtrip test to avoid parallelism conflict
xfy
2026-06-09 17:20:03 +08:00
-
3041535cf7
test(cache): add cache key and roundtrip tests
xfy
2026-06-09 17:18:39 +08:00
-
4c534eeb4c
fix(posts): invalidate tag and old slug caches on create/update
xfy
2026-06-09 17:15:29 +08:00
-
91caf3f8bd
feat(posts): invalidate caches on write operations
xfy
2026-06-09 17:09:17 +08:00
-
887aacb5f1
fix(posts): check cache before auth, skip caching None slugs
xfy
2026-06-09 17:06:53 +08:00
-
4c44b62e3d
feat(posts): add caching to read operations
xfy
2026-06-09 17:01:12 +08:00
-
0b594ff719
refactor(cache): use CacheKey directly, remove unnecessary async
xfy
2026-06-09 16:56:41 +08:00
-
62e2045b35
feat: add cache module with moka-backed post/tag/stats caching
xfy
2026-06-09 16:47:17 +08:00
-
9452c196fa
docs: document why image crate excludes WebP decoder
xfy
2026-06-09 16:14:28 +08:00
-
c08d35856e
test: add WebP config parsing and clamping tests
xfy
2026-06-09 16:04:26 +08:00
-
05cf2f79ea
refactor: extract WebP encode helper to reduce duplication
xfy
2026-06-09 15:59:02 +08:00
-
7d9c4b9e0f
refactor: simplify TraceLayer setup and reformat route definitions
xfy
2026-06-09 15:58:18 +08:00
-
035d11e39b
fix: log warning when WebP env vars are clamped
xfy
2026-06-09 15:53:39 +08:00
-
db3379364f
fix: limit WebP decode buffer size to prevent malicious allocations
xfy
2026-06-09 15:48:34 +08:00
-
7c6bab8019
fix: preserve f32 precision for WebP quality
xfy
2026-06-09 15:43:16 +08:00
-
2e2be7b16d
feat: add WebP encoding support with zenwebp
xfy
2026-06-09 15:30:06 +08:00
-
5ecd8a9b86
feat: add disk-level cache for processed image variants
xfy
2026-06-09 13:45:49 +08:00
-
0319c927c6
chore: format code
xfy
2026-06-09 13:40:49 +08:00
-
b26094835f
feat: convert uploaded images to WebP for storage savings
xfy
2026-06-09 13:39:36 +08:00
-
281da208f5
fix: remove stray space in upload filename format string
xfy
2026-06-09 13:37:11 +08:00
-
44c1358da5
refactor: extract post content JS into standalone script
xfy
2026-06-09 13:18:40 +08:00
-
0345fa70f2
fix: add click handler for code block copy button
xfy
2026-06-09 11:33:26 +08:00
-
1c492545c3
chore: add release skill for version publishing workflow
xfy
2026-06-09 11:24:39 +08:00
-
6ab101b053
chore: add CHANGELOG.md for v0.1.0
v0.1.0
xfy
2026-06-09 11:17:59 +08:00
-
28d3ed998a
chore: optimize release profile for fullstack and add linux static build target
xfy
2026-06-09 10:30:36 +08:00
-
4595d1c8e7
chore: remove unused dependencies and slim down features
xfy
2026-06-09 10:21:27 +08:00
-
42b39266a6
fix: preserve data URI in img src during markdown rendering
xfy
2026-06-09 10:06:34 +08:00
-
3974856f3d
fix: resolve image/upload 500 errors and refactor rate limiting
xfy
2026-06-09 09:48:51 +08:00
-
4f368e6fb8
test: add 122 unit tests across 12 modules
xfy
2026-06-09 09:25:44 +08:00
-
959d813630
feat: pg_trgm full-text search for posts (#2)
Sonetto
2026-06-08 18:26:35 +08:00
-
e74b9f3c39
feat: apply rate limiting to Register, Login, and upload endpoints
xfy
2026-06-08 17:30:26 +08:00
-
dd8477c7a3
chore: sync Cargo.lock and remove unused seed script
xfy
2026-06-08 17:05:46 +08:00
-
db33d02154
feat: apply rate limiting middleware to axum router
xfy
2026-06-08 16:59:26 +08:00
-
76f1b8dd53
feat: add rate limiting configurations
xfy
2026-06-08 16:57:48 +08:00
-
771b155a88
refactor: split posts.rs and fix N+1 with JOIN+array_agg
xfy
2026-06-08 16:53:31 +08:00
-
32131377c3
refactor: integrate tags module into posts.rs and mod.rs
xfy
2026-06-08 16:45:20 +08:00
-
441060e7c2
refactor: extract tag operations into api/tags.rs
xfy
2026-06-08 16:44:38 +08:00
-
6e4e72b232
refactor: extract markdown rendering into api/markdown.rs
xfy
2026-06-08 16:42:55 +08:00
-
4c88d5e2bb
refactor: extract slug utilities into api/slug.rs
xfy
2026-06-08 16:40:44 +08:00