root and Claude Opus 5.5
724c360a75
docs(plan): mark W1 review B3-B9 and S2 status after W2-0
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-27 19:31:24 +08:00
root and Claude Opus 5.5
9858b8494d
feat(server): ServerModule skeleton with shared ServerContext, worker runs engine + outbox relay (B6)
...
modules/{auth-settings,sources-identity,acquisition-organize,agent} placeholders listed in
SERVER_MODULES; ServerModule registers routes (under /api/v1, authenticated), tasks,
outbox routes, capabilities and background loops. bootstrap() builds ServerContext (db,
config, logger, events, engine, outbox writer, secrets placeholder, settings reader,
capability registry), fills unregistered tasks with stubs and rejects duplicate task or
outbox ownership. worker starts the OpenWorkflow worker, OutboxRelay and module start().
--role migrate also migrates the engine schema; api/worker connect without migrating.
tasks: TaskRegistry.has, migrateEngineSchema.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-27 19:30:55 +08:00
root and Claude Fable 5.1
bc3ff4fb25
docs(plan): W1 wave-end independent review
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-27 19:03:08 +08:00
root and Claude Fable 5.1
569bb29664
docs(plan): W2 service orchestration split
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-27 18:53:44 +08:00
root and Claude Fable 5.1
304feea141
chore(deno): migrate toolchain from Node 24 + pnpm to Deno 2.9.7 + TypeScript 7.0.2 (W1.5)
...
- root deno.json workspace (nodeModulesDir auto), npm versions registered once in imports, deno.lock;
remove pnpm-lock/pnpm-workspace/root package.json; members keep minimal package.json (name/type/exports)
- tasks: dev, typecheck (tsc 7.0.2 per member + deno check), lint/fmt (biome, useImportExtensions),
test (vitest via deno), check:tokens, build (web + deno compile), ci, db:migrate/reset, gen:types
- tsconfig base moved to config/ (no root tsconfig.json); deno types -> types/deno.d.ts; web drops baseUrl
- server: Deno.serve entry with graceful shutdown, --role migrate|preflight|probe, WEB_ROOT static SPA hosting;
drop @hono/node-server, tsx, esbuild build.mjs
- logger: redact child() bindings and serialize err by message/stack; sync stdout destination; tests
- relative imports get explicit extensions (sites/mp-sync paths left for follow-up)
- crash-recovery tests spawn `deno run -A`; tasks tests use unique per-file schemas
- single-container Dockerfile + entrypoint (migrate -> preflight -> api+worker watchdog), docker-compose.yml
- docs: README, runbook, ADR-001 superseded, plan §1 validation row
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-27 18:53:06 +08:00
root and Claude Opus 5.5
d9f2af2f3c
feat(adapters): port MoviePilot open site framework (7 spiders, 20 user parsers) + MovieClaw v0.27.0 site definitions + mp-sync tools (W1-3c)
...
- sites/spiders: Haidan/HDDolby/RousiPro/SunnyPT/TNode/TorrentLeech/Yema (+mTorrent wrapper), specialized SiteAdapter, indirect download resolved at download time
- sites/user-parsers: SiteParserBase + all 20 MP SiteSchema parsers (lxml XPath via xpath+xmldom), refreshSiteUserData with schema fallback
- sites/definitions: zod SiteDefinition schemas, 23 MovieClaw v0.27.0 (MIT) definitions via scripts/mp-sync/movieclaw-import.mjs, registry getSiteDefinition/listSiteDefinitions, NOTICE
- scripts/mp-sync: ledger.json (upstream sha256), check.mjs, build-ledger.mjs; docs/porting/mp-sync-ledger.md
- license-and-provenance: add copied-mit kind, re-anchor MovieClaw rows to v0.27.0
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-27 18:39:27 +08:00
root and Claude Fable 5.1
cf85481d95
docs(spikes): Deno 2.9.7 + TS 7 compatibility spike and ADR-004
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-27 18:24:08 +08:00
root and Claude Fable 5.1
fe3613ee8f
docs(porting): MovieClaw v0.27.0 MIT asset assessment
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-27 18:19:46 +08:00
root and Claude Fable 5.1
007992d283
docs(design): OpenWorkflow dashboard reference for console engine panel
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-27 18:15:30 +08:00
root and Claude Fable 5.1
9853d11a19
chore: sync lockfile/workspace after W1; add auth reference and plan updates
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-27 18:12:40 +08:00
root and Claude Fable 5.1
a6d049db81
feat(adapters): RSS and PT site adapters ported from MoviePilot v3 + mocks (W1-3b)
...
- rss: port of MP RssHelper._parse_impl/get_rss_link semantics with safe
XML (entities off, DTD/ENTITY rejected, size/item caps), ETag/Last-Modified,
backoff + Retry-After, circuit breaker with manual reset, passkey redaction,
overlap-window GUID+digest dedupe
- sites/spider: TS port of MP SiteSpider (indexer schema, search URL builder,
field DSL, filters, Jinja templates via nunjucks, login-page detection);
audiences definition hand-written as JSON; raw category id preserved;
shared per-site token bucket
- sites/mteam: port of MP MTorrentSpider (params, result mapping, promo
factors, genDlToken flow) without embedding the API key in enclosures;
business code/message checks
- testkit: mock RSS server, mock NexusPHP site, mock M-Team API
- docs: W1-3b migration mapping appended to porting ledger
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-27 18:10:34 +08:00
root and Claude Fable 5.1
ef2e504a94
feat(adapters): qBittorrent, filesystem, TMDB and Emby adapters with testkit mocks (W1-3a)
...
- qbittorrent: WebUI API v2 client (cookie/API-key auth, add/info/files/filePrio,
pause/resume with 5.x stop/start fallback, tags, delete with explicit deleteFiles,
maindata), error classes, idempotent submit with local infohash (own bencode)
and post-timeout hash/probe-tag lookup; state mapping per MoviePilot
- fs: copyWithVerify (tmp + fsync + size/sha256/sample + no-clobber commit),
moveSafe (EXDEV surfaced), resumable crossDeviceMove, statSafe/checkRoot with
root sentinel, budgeted incremental scan with cursor, ffprobe, statfs usage
- tmdb: multi-language search/details/seasons, LRU+TTL cache with coalescing,
rate-limit backoff, MoviePilot match chain (name normalization, year +-1)
- emby: Emby/Jellyfin items/seasons/episodes/MediaSources, failures -> unknown
- testkit: mock qB / TMDB / Emby servers, torrent builder, temp-tree fixtures
- docs: W1-3a porting table appended to downloader-and-sites ledger
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-27 18:07:48 +08:00
root and Claude Fable 5.1
ec023a8405
docs(spikes): OpenWorkflow and Pi SDK compatibility spikes + ADR-002/003 (W0-B)
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-27 17:39:35 +08:00
root and Claude Fable 5.1
8b90d396b2
docs(porting): MoviePilot/MovieClaw porting ledger (W0-C)
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-27 17:37:14 +08:00
umt and Claude Fable 5.1
b22c440139
chore: scaffold monorepo and migrate uhd_web design system (W0-A)
...
- pnpm workspace: apps/{web,server}, packages/{contracts,db,domain,adapters,tasks,agent,testkit}
- server: Hono + zod-openapi, API Key auth with scopes, redacting pino logger, SSE event bus with replay, worker heartbeat
- db: Kysely + pg, file migrator, 0001_init (settings/api_key/audit_event/outbox_event)
- web: React Router 7 SPA console shell with 12 workspace placeholders, uhd_web tokens/ui/guard scripts
- docs: ADR-001 (Node over Deno), dev runbook, design system rules
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-27 17:36:26 +08:00