GeorgeCooper72/dsh-lowtide ↗★ 0

dsh-lowtide

Time-shifting task delegation for DeepSeek Harness (dsh): plan tasks at leisure, they run unattended off-peak, come back to a report. Human-adjudicated, desktop + web. 适合需要错峰执行耗时任务并获取报告的桌面或Web用户。

Package
dsh-lowtide
Compatibility
Unverified
Version
0.1.23
License
NOASSERTION
Last updated
Oct 17, 2026

Other repositories with this package name

Install

This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗

Day-to-day usage

Three ways to file a task. The intercept card (type at peak, one click, your draft becomes the ticket unchanged); the ticket modal ("New" beside the input area — prompt, strategy, rounds, priority); or the API (POST /ds-lowtide/tasks, wire it into your own automation).

Life in the queue dock. Grouped by workspace into pending / finished / dropped. Inline per task: ✓ approve, ⏸ defer, ✕ drop (soft delete, restorable). "Approve all" releases everything; "clear finished" keeps it tidy (the books are unaffected); "Run now" skips the wait and launches a batch immediately — that's how you debug.

Time semantics. Official peak hours are judged in Beijing time (DeepSeek bills in Beijing time, so the books stay aligned; weekends are off-peak all day). Your custom windows and the run window are judged in your local time, with overnight ranges and per-weekday rules. Window end stops new launches; running tasks are never interrupted.

The ledger. ledger[YYYY-MM-DD] = { yuan, savedYuan } — spend and savings, accrued daily. The displayed price is the billed price: one formula, auditable to the digit.

Configuration reference

GET /ds-lowtide/config reads; PUT partially updates (unlisted fields are rejected):

FieldTypeDefaultNotes
autonomy'l1'|'l2'|'l3'l2Autonomy level; per-task override in the ticket modal
batch.window"HH:MM-HH:MM"19:00-23:30Off-peak run window (local timezone); mirrors batch.windows[0]
batch.windows"HH:MM-HH:MM"[]—Multiple run windows (1–6); each runs one batch per day. Absent = the single batch.window
batch.tzIANA timezonesystemRun-window timezone (empty = local)
batch.gateLeadMinminutes30Batch gate lead time
batch.maxTasksPerNightnumber10Tasks per batch cap
batch.maxDurationMinminutes240Per-task duration cap (cancel + one retry on timeout)
batch.maxConcurrencynumber3Max concurrency 1–8 (serial per workspace, parallel across)
batch.pausedbooleanfalsePause automatic batching
budgetDailyYuan¥0Daily budget (0 = unlimited)
windows[]array[]Custom windows; empty = official peak (Beijing time)
windows[].levelpeak|off|custom—Peak / off-peak / custom (off-peak price × multiplier)
windows[].start/end"HH:MM"—Local clock, overnight supported
windows[].days1..7 arrayevery dayISO weekdays (1 = Mon … 7 = Sun)
windows[].tzIANA timezonesystemPer-window timezone
windows[].multipliernumber1Off-peak price multiplier for custom windows
prices[model].{peak,off}.{input,inputCached,output}¥/1MofficialPrice-table overrides