DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

symonx1188 /

symonx1188/dsh-daily-todo

Verified

This plugin has no description yet.

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@7728c06b

DSH Daily To-do

English · 简体中文

A DSH plugin that adds a Daily To-do panel to the Web GUI with its own left-sidebar entry: one list per calendar day, a color-coded category per item, scheduled tasks that fill themselves in, completion progress, and the last seven days at a glance.

  • Built against DSH 0.2.2-rc.2.
  • No build step and no dependencies: client.js is plain browser JavaScript for the panel, index.js is the Host half and registers nothing.
  • Records stay in this browser on this machine. The plugin makes no network request and writes nothing outside the page's own storage.

Features

The day

  • One list per calendar day, with ‹ › day navigation, Back to today, and a Last 7 days strip whose dots read untouched / partial / complete.
  • Done n / total with a progress bar; a finished day says so.
  • Completed items stay in the list, struck through, so the day remains a record of what was planned rather than only what is left.
  • Carry over unfinished copies yesterday's remaining items into the shown day, skipping anything already there and anything scheduled.

Items

  • Add with Enter. The category under the add field applies to the next item and is remembered across launches.
  • Edit by clicking the item text: the row becomes a field with the text selected, the category picker, and Save / Cancel. Enter saves, Escape cancels, and clearing the field cancels instead of deleting the row.
  • Tick with the checkbox; delete with the ×, which offers an undo for seven seconds and returns focus to that undo control.
  • Clear completed arms on the first press and confirms on the second.

Categories

  • Five fixed categories — Work, Study, Life, Health, Other — each with its own color dot and name on the row. Items written before categories existed read as Uncategorised.
  • Color is never the only difference: the category name always sits beside the dot, and the color is applied to decoration only, never to text.
  • Other can carry a short name (up to 24 characters), such as Plumbing or Side project; the row then shows that name instead of Other.
  • By category summarises the day once more than one category is in use. Each entry can narrow the list to that category; the progress row keeps measuring the whole day, so filtering never changes the numbers.

Scheduled tasks

A dedicated Scheduled tasks screen, opened from the page header button that also shows the rule count, holds every repeating rule. One rule is a name, a category, and one pattern:

Pattern Configured by
Every day nothing
Weekly any set of weekdays, Monday first
Monthly a day of the month, or the last day of the month
Every N days the interval, counted from the day the rule was created
  • A rule adds its item to every day it matches, from its creation day onwards. Each day is ticked separately, so one occurrence never completes another.
  • A rule on the 31st lands on the last day of a shorter month, including February.
  • The row shows a dashed chip naming its pattern (Weekly · Mon, Wed, Monthly · Day 15), and clicking the row's text opens that rule for editing.
  • One rule is one definition: editing it updates every day it matches, and deleting it removes the rule with its past completion marks.

Install

This repository is one DSH plugin package (a bundle). Copy the directory anywhere stable, then install it:

  • From the Plugins page: Plugins → Add plugin, pick this directory, then switch the Daily To-do row on.
  • Through an agent: ask DSH to install the directory as a bundle; it calls plugin_manager with install_bundle and the absolute path of the directory.
  • From a checkout: the same two routes apply, so git clone into any directory you intend to keep is enough.

The profile records a link: dependency on the directory it was installed from, so do not move or delete it afterwards; reinstall from the new path instead. After installation the checklist icon appears in the left sidebar between Plugins and Tasks. Reload the page (Ctrl+R) if it is not there yet, and note that replacing an already installed copy takes effect on the next load.

Uninstalling is done from the same page: switch the row off to hide the panel, or remove the bundle.

Data and privacy

  • Records live in the page's localStorage under dsh.daily-todo.v1: tasks per day, scheduled rules, per-day completion marks, and the last used category.
  • A cookie named dsh_daily_todo_v1 mirrors the most recent days (at most seven, trimmed from the oldest until it fits a 3.5 KB budget). It exists because the Desktop host binds a new loopback port on every launch, and 127.0.0.1:<port> is a different local-storage origin — the cookie is not port-scoped, so it restores recent days after a restart.
  • History is capped at 120 non-empty days. Clearing the site's data or this cookie removes the records; there is no export and no sync.
  • Nothing leaves the machine: the panel does not call any endpoint, and the agent has no tool for these records.

Limitations

  • No reminders. A rule decides which days an item appears on; there is no time of day and nothing pops up.
  • A rule cannot be skipped for a single day — leave that day's item unticked.
  • The category list is fixed; it cannot be renamed, extended, or recolored in the page.
  • No reordering, no hiding of completed items, no calendar picker for older days, no export, and no sorting or grouping by category (the summary only filters).

Repository layout

Path Purpose
package.json Bundle manifest: dsh.bundle.patch, dsh.client, exports, icon.
cordis.patch.yml Inserts the daily-todo row into the profile.
index.js Host half; a no-op apply, so the row stays listable.
client.js The whole panel: sidebar entry, day page, scheduled-task screen, dictionaries, storage.
locale/en.json, locale/zh.json Title and description read by the Plugins page.
icon.svg Bundle and plugin artwork.
README.zh-CN.md, CHANGELOG.zh-CN.md Chinese editions of the two documents.
scripts/check.mjs Repository checks: syntax, JSON, manifest, bilingual dictionaries.

Development

The plugin is deliberately a single plain-JavaScript file with no build step.

  • Edit client.js and reload the page. An installed directory is linked, so its next page load reads the edited file; a hard reload guarantees it.

  • Run the repository checks:

    node scripts/check.mjs
    

    It parses both JavaScript files, parses the JSON resources, checks the bundle manifest and every file it declares, and compares the two dictionary literals in client.js so a key added in one language cannot be forgotten in the other.

  • Style rules the panel follows: theme tokens only (--dsw-alias-*), 960 px content column, 28 px top inset, 20/28/500 page title, 32 px capsule controls, and no import of another Harness Client package.

Changelog

See CHANGELOG.md.

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 7728c06b89e0

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout