已关闭
Add Web UI job supervision for sync and RAG jobs #95
urandon创建于 16 天前关闭于 16 天前
16 天前 添加了label:enhancement
urandon
16 天前 评论:
16 天前 评论:
Starting the job-supervision slice after merging !98.
Implementation plan:
- Add an admin job action adapter over the in-process JobManager/MaintenanceManager; no CLI/MCP subprocesses.
- Extend job DTOs with public-safe work/coalescing identity, cancellable/retryable reasons, progress cursor/retention metadata, throughput/ETA where derivable, and explicit interrupted/cancelled/superseded states.
- Add versioned CSRF-protected cancel/retry endpoints requiring session, same-origin, target identity, capability eligibility, and caller idempotency key. Retry will reconcile the original maintenance registration and report whether equivalent work was coalesced or a new job id was created.
- Persist bounded idempotency receipts with the daemon-owned job snapshot so browser reload/restart cannot replay a different intent.
- Add URL-backed job filters/detail and structured timeline; controls name the cache/repo and show the exact receipt/current state.
- Test reconnect/reload, graceful cancel, retry coalescing, stale/duplicate idempotency, terminal/unsupported targets, expired SSE cursors, interrupted jobs, bounded retention/progress, CSRF/origin/session, and responsive browser flows.
No arbitrary priority/lock controls, raw logs, release/tag, or routine source install.


16 天前 关联了pull request:Add safe admin job supervision
urandon
16 天前 评论:
16 天前 评论:
Implemented in !99: https://gitcode.com/urandon/gitcode-mcp/pull/99
Completion report:
- daemon-owned sync/RAG jobs now expose stable public work references, action eligibility, bounded progress retention, throughput/ETA where derivable, and failure-class filtering
- cancel and retry require an authenticated browser session, same-origin validation, CSRF, a retained target, supported type/state, and a bounded idempotency key
- action receipts persist only key/intent hashes, are bounded to 256 entries, replay safely after daemon restart, and distinguish cancelled/cancellation_requested plus created/coalesced/no_work_needed
- retry is a safe current maintenance reconciliation, not a promise to reproduce an obsolete historical execution
- Jobs now has URL-preserved state/type/cache/repository/failure filters, reload-safe detail, structured bounded timeline, rate-limit/retry/interruption state, explicit target confirmation, and receipt/error feedback
- browser retries reuse the same idempotency key after an interrupted response
- the real modal restores focus; Light/Dark/System remain supported with System default
Verification:
- go test ./...
- go test -race ./internal/adminhttp ./internal/servicectl
- go vet ./...
- frontend typecheck and unit tests
- Playwright Chromium: cancel, retry coalescing, interrupted response replay, filters, deep-link reload, interruption and rate-limit states; 6 passed, live-only case skipped without its environment
- deterministic embedded asset rebuild
- visual QA at the selected 1487x1058 reference viewport and 390px responsive coverage
- git diff --check
No tag, release, or go install was produced; this is one slice of the admin epic.


16 天前 关闭了 issue
16 天前 关联了里程碑:Admin Web UI
16 天前 添加了label:admin-ui
16 天前 添加了label:service
16 天前 添加了label:sync
16 天前 添加了label:rag
Parent: #52
Depends on: admin observation API; read-only operator views
Design: https://gitcode.com/urandon/gitcode-mcp/wiki/Admin-Web-UI-Design-2026-08-25.md
Goal
Add safe supervision for daemon-owned sync and RAG jobs.
Scope
Acceptance criteria
go test ./..., frontend checks, andgit diff --checkpass.Non-goals