Commit Graph

12 Commits

Author SHA1 Message Date
matevip
2b3c068db9 feat(wiki): broken-link lint with job-based async scan 2026-05-28 08:17:04 +08:00
matevip
66d3d90ea9 feat(wiki): slug-first wikilink resolution and safe DOM postprocess 2026-05-28 08:16:56 +08:00
matevip
cfb123dda2 fix(wiki): keep the raw-material filter across page-list refreshes (#156) 2026-05-18 23:28:56 +08:00
matevip
adf5d93975 fix(wiki): align HTTP status with R envelope and harden config + edit paths 2026-05-14 23:01:00 +08:00
matevip
6e57f78fc2 feat(wiki-ui): library home + workspace split for Wiki page 2026-05-10 19:16:22 +08:00
matevip
4ed88ebbf9 feat(wiki): PR-8 frontend protection badges + delete-button gating 2026-04-25 19:02:32 +08:00
matevip
45bae0c8ab feat(wiki): drag-over visual, optimistic UI, and progress bar for raw material uploads
- Drag-over highlight (orange border + shadow + arrow icon) on the upload
  zone, using dragCounter to prevent flicker over nested children
- Optimistic list items appear immediately on drop/select with UPLOADING
  badge and progress bar, before the HTTP request completes
- Wire axios onUploadProgress through api.uploadRaw → store.uploadRawFile
  so the progress bar tracks real byte transfer (0–100%), with an
  indeterminate shimmer until the first tick
- try/catch around every upload: on failure, placeholder flips to an error
  state with ElMessage.error toast and a × dismiss button
- Upload all dropped/selected files concurrently via Promise.all
- i18n keys added (zh-CN + en-US): dropToUpload, uploading, uploadFailed,
  status.uploading, progress.uploading
2026-04-24 15:22:32 +08:00
matevip
27c4c3e5e2 feat(wiki): config UI overhaul — model strategy, search preview modal, graph fullscreen 2026-04-24 10:03:45 +08:00
matevip
d04d90dfc5 feat(wiki): grouped page list, pageCount on raw materials, frosted-glass UI 2026-04-24 06:55:21 +08:00
matevip
4700d0312d fix(wiki): deduplicate raw material uploads across all processing statuses
Root cause: addFile()/addText() hash dedup only matched rows with
status=completed, so the same file uploaded while in partial/pending/
processing/failed status would create a duplicate row.

Fix:
- Remove .eq(processingStatus, "completed") from dedup queries — match
  any non-deleted row with the same content hash in the KB
- On dedup hit: completed/pending/processing → return as-is;
  partial/failed → trigger reprocess (partial enters resume branch)
- Clean up the newly uploaded temp file when dedup discards it
- Frontend: uploadRawFile/addRawText check for existing id in the list
  before unshift to prevent visual duplicates

Test: WikiRawMaterialDedupTest — 10 cases covering all 5 statuses,
reprocess triggers for partial/failed, no-op for others, insert only
when no match.
2026-04-19 19:36:13 +08:00
matevip
2a2f862257 feat(wiki): per-raw progress bar in raw-material card (RFC-012 M2 v2 UI) 2026-04-14 18:56:45 +08:00
matevip
642360a773 feat(wiki): add LLM Wiki knowledge base system 2026-04-08 10:55:50 +08:00