Releases: PerryLink/dsh-ticktick
Release list
v0.1.11
Changelog
All notable changes to this project are documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.11] - 2026-09-24
Changed
- Host pins move to
0.1.7-rc.1; re-verified against that host line. Every@deepseek-ai/dsh-*dev/test dependency now pins0.1.7-rc.1, thepnpm-lock.yamlgraph is regenerated,dshWorkshop.compatibility.dshVersionsappends0.1.7-rc.1, the monthly Compat workflow and the CI probe install the0.1.7-rc.1host, and the compatibility baseline in every README recordsdsh-v0.1.7-rc.1. The declared host ranges (engines.dshand thepeerDependenciesunion) are deliberately unchanged — they already admit0.1.7-rc.1, and a range is what the manifest accepts, not what has been tested.
[0.1.10] - 2026-09-23
Changed
- Re-verified against the
0.1.7-alpha.2host; the@deepseek-ai/dsh-*host pins move to0.1.7-alpha.2. Thealpha.2wave removes nothing this plugin consumes: the published type surface of every host package it resolves is either byte-identical to0.1.7-alpha.1(@deepseek-ai/cordis4.0.3≡4.0.4,@deepseek-ai/schemastery3.18.3≡3.18.4) or strictly additive (ToolDefinition.projectContent?,ClientModuleLoader.importError(), six addeddsh-client-localekeys). The wave's only removals are internals no plugin in this family references —dsh-subprocess-localprivates and its non-entrybindManagedProcess,dsh-client-webassertEntriesActive,dsh-app-boot'sunhandledRejectionevent,dsh-client-ui-plugin-managerapply(), a refineddsh-client-ui-primitivesCodeBlocksignature, and thediff.files.one/diff.files.otherlocale key pair. Both rulers therefore stay green on the moved pin:typecheckagainst the checkout,typecheck:ciagainst the published0.1.7-alpha.2faces. - The declared host range is deliberately unchanged. It already admits
0.1.7-alpha.2(0.1.7-alpha.2satisfies the>=0.1.7-0 <0.2.0clause), and the family convention keeps peer ranges wider than the verified line rather than narrowing them to it; a range is what the manifest accepts, not what has been tested. - Repo documentation (
AGENTS.md), the workspace graph pin (pnpm-workspace.yaml) and the published-line workflow pins move with the manifest, so no file still claims the previous line.
[0.1.9] - 2026-09-22
Changed
- Adapt to DeepSeek Harness
dsh-v0.1.7-alpha.1, whose settings contract replacedinstallSectionwholesale. The plugin now declares its live fields asVolatile<T>Config references (token,tokenFile,mcpUrl,protectedTaskIdscarry.volatile()), announces the page withctx.settings.configure({ auto: false }, ctx.fiber), and reads every live value through.get()at the moment of use — so a saved edit is committed into the running reference and applies without a restart. The token is still re-read per request, now from the Config reference instead of a settings-namespace source callback. The four editable fields are the same four as before:toolCallTimeoutMsand the tool-name pins stay plain, and Schemastery omits a plain field from the generated form, so promoting either one would have invented a new editable surface. - Migrate the browser half's configuration card from the removed
plugins.itemslot toplugins.row.config(key@perrylink/dsh-ticktick#ticktick), which is where a bundle row's own configuration belongs: the page opens from the Configure control on the TickTick row of the Plugins page. The card takes the page owner'sformrender prop instead of the removedctx.settingsScopeservice, dropssettingsScopefrom itsinjectlist (its absence would have left the whole browser half unmounted), and writes path-addressed edits throughform.mutate. - Handle the token as a redacted secret end to end. The field keeps
role('secret'), so the Host omits its value from every form response; the page therefore (a) never renders or caches a stored token — the input reads "already stored — type to replace" and a blank box means "keep", (b) writes field-addressed operations rather than rebuilding the section, because a wholesale replace built from a redacted document would silently delete the stored token, and (c) reports configured-ness from the redaction ledger'ssetflag. The probe result and every error message remain sanitized. No credential value is written to the form, the logs, or the wire. - Converge the Typert wire codec on its single remaining face.
wireStrictno longer carries theschemafield (removed fromTypertCodec's strict form, dead code when present, and never consulted by the Loader) and emits onlycreate: () => schema, which is the one factory the Typert Loader accepts; a strict codec without it is refused at mount. - Harden the configuration page's validation:
mcpUrlnow carries.pattern(/\S/)andtoolCallTimeoutMskeeps.min()/.max(), so an invalid form edit is rejected by the Host before persistence and the loaded value is left untouched — the fail-loud semantic of the removedinstallSectionvalidatehook, moved onto the schema.resolveConfigstill re-judges every default and bound at load. - Pin the
@deepseek-ai/dsh-*dev/test dependencies to the published0.1.7-alpha.1line (= the verified host), replacing0.1.5-rc.2, and record0.1.7-alpha.1indshWorkshop.compatibility.dshVersions; the monthly Compat workflow and the README compatibility tables follow.@deepseek-ai/schemasterymoves to^3.18.3in both the peer and dev ranges because.volatile()is called at runtime while building the schema and3.18.2has neither the method nor its type. The peer range narrows to>=0.1.7-alpha.1 <0.2.0: that release is the first carrying the contract this build uses, and every earlier line still shipsinstallSection, so the old range advertised support the code can no longer provide.@deepseek-ai/cordiskeeps its wide^4.0.2peer floor (itsVolatileis a type-only import) while devDeps pin^4.0.3, and@deepseek-ai/cosmokit ^1.8.4is now an explicit devDependency.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.7-alpha.1and describe where the configuration page lives (Plugins page → the TickTick row → Configure) and that its four fields now apply live.
[0.1.7] - 2026-09-12
Changed
- Rename the four translated READMEs to
README-<lang>.md. npm selects the package-page readme as the first markdown file matching its{README,README.*}glob (@npmcli/package-json, publish path), and that glob order putsREADME.<lang>.mdahead ofREADME.md— so npm was serving the Simplified-Chinese file for this package too (measured on 15/15 sampled packages of the family). The new names sit outside the glob, so the English source is served again. No content changed apart from the language-switcher link each translation holds to its siblings, and the repo readme gate still passes. Takes effect with the next release; an already-published version cannot gain a corrected readme retroactively. - Pin the
@deepseek-ai/dsh-*dev/test dependencies to the published0.1.5-rc.2line and record0.1.5-rc.2indshWorkshop.compatibility.dshVersions; the monthly Compat workflow now runs against0.1.5-rc.2. The peer range>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0is unchanged, so no supported host line is dropped.
[0.1.6] - 2026-09-10
Changed
- Pin the
@deepseek-ai/dsh-*dev/test dependencies to the published0.1.5-rc.1line and record0.1.5-rc.1indshWorkshop.compatibility.dshVersions; the monthly Compat workflow now runs against0.1.5-rc.1. The peer range>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0is unchanged, so no supported host line is dropped.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.5-rc.1(verified 2026-09-10).
[0.1.5] - 2026-09-09
Changed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0and pin the dev/test dependencies to the published0.1.5-alpha.1line: adaptation to DeepSeek Harnessdsh-v0.1.5-alpha.1(session format V3,ctx.agentremoval,Inboxtype-only interface); runtime behavior is unchanged for every supported host line. - Record
0.1.5-alpha.1indshWorkshop.compatibility.dshVersions.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.5-alpha.1(verified 2026-09-09).
[0.1.4] - 2026-09-07
Docs
- Fix the DSH plugin badge URL: shields.io rejects the four-segment static badge form with "404 badge not found"; the label now uses the documented double-dash form (
dsh--plugin), rendering identically; no behavior change.
[0.1.3] - 2026-09-07
Fixed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0: the older>=0.1.0-rc.8 <0.2.0band resolved to only the0.1.0-rc.8prerelease under registry-driven resolution and broke fresh tarball installs; no behavior change.
Docs
- Repair the mojibake in the es/pt/hi READMEs, complete their sections, and add the five-language readme-sync gate (
check:readmes); refresh the support-version wording (GitHub tagdsh-v0.1.3-alpha.1leads, npm0.1.2-rc.1pin) and the Desktop Market install note; no behavior change.
[0.1.2] - 2026-09-04
Changed
- Republish under the scoped npm name
@perrylink/dsh-ticktick: the baredsh-ticktickname is owned by another account (publish E403), so the package, the bundle-patch row, the client bundle id, and the five-language install commands now carry the scoped name; the plugin id (ticktick), settings namespace, tools, and repository stay unchanged. - Align the devDependency pins to the published dsh
0.1.2-rc.1line and add thedshWorkshopomdsh-workshop-package/v1 intake manifest (carried over fro...
v0.1.10
Changelog
All notable changes to this project are documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.10] - 2026-09-23
Changed
- Re-verified against the
0.1.7-alpha.2host; the@deepseek-ai/dsh-*host pins move to0.1.7-alpha.2. Thealpha.2wave removes nothing this plugin consumes: the published type surface of every host package it resolves is either byte-identical to0.1.7-alpha.1(@deepseek-ai/cordis4.0.3≡4.0.4,@deepseek-ai/schemastery3.18.3≡3.18.4) or strictly additive (ToolDefinition.projectContent?,ClientModuleLoader.importError(), six addeddsh-client-localekeys). The wave's only removals are internals no plugin in this family references —dsh-subprocess-localprivates and its non-entrybindManagedProcess,dsh-client-webassertEntriesActive,dsh-app-boot'sunhandledRejectionevent,dsh-client-ui-plugin-managerapply(), a refineddsh-client-ui-primitivesCodeBlocksignature, and thediff.files.one/diff.files.otherlocale key pair. Both rulers therefore stay green on the moved pin:typecheckagainst the checkout,typecheck:ciagainst the published0.1.7-alpha.2faces. - The declared host range is deliberately unchanged. It already admits
0.1.7-alpha.2(0.1.7-alpha.2satisfies the>=0.1.7-0 <0.2.0clause), and the family convention keeps peer ranges wider than the verified line rather than narrowing them to it; a range is what the manifest accepts, not what has been tested. - Repo documentation (
AGENTS.md), the workspace graph pin (pnpm-workspace.yaml) and the published-line workflow pins move with the manifest, so no file still claims the previous line.
[0.1.9] - 2026-09-22
Changed
- Adapt to DeepSeek Harness
dsh-v0.1.7-alpha.1, whose settings contract replacedinstallSectionwholesale. The plugin now declares its live fields asVolatile<T>Config references (token,tokenFile,mcpUrl,protectedTaskIdscarry.volatile()), announces the page withctx.settings.configure({ auto: false }, ctx.fiber), and reads every live value through.get()at the moment of use — so a saved edit is committed into the running reference and applies without a restart. The token is still re-read per request, now from the Config reference instead of a settings-namespace source callback. The four editable fields are the same four as before:toolCallTimeoutMsand the tool-name pins stay plain, and Schemastery omits a plain field from the generated form, so promoting either one would have invented a new editable surface. - Migrate the browser half's configuration card from the removed
plugins.itemslot toplugins.row.config(key@perrylink/dsh-ticktick#ticktick), which is where a bundle row's own configuration belongs: the page opens from the Configure control on the TickTick row of the Plugins page. The card takes the page owner'sformrender prop instead of the removedctx.settingsScopeservice, dropssettingsScopefrom itsinjectlist (its absence would have left the whole browser half unmounted), and writes path-addressed edits throughform.mutate. - Handle the token as a redacted secret end to end. The field keeps
role('secret'), so the Host omits its value from every form response; the page therefore (a) never renders or caches a stored token — the input reads "already stored — type to replace" and a blank box means "keep", (b) writes field-addressed operations rather than rebuilding the section, because a wholesale replace built from a redacted document would silently delete the stored token, and (c) reports configured-ness from the redaction ledger'ssetflag. The probe result and every error message remain sanitized. No credential value is written to the form, the logs, or the wire. - Converge the Typert wire codec on its single remaining face.
wireStrictno longer carries theschemafield (removed fromTypertCodec's strict form, dead code when present, and never consulted by the Loader) and emits onlycreate: () => schema, which is the one factory the Typert Loader accepts; a strict codec without it is refused at mount. - Harden the configuration page's validation:
mcpUrlnow carries.pattern(/\S/)andtoolCallTimeoutMskeeps.min()/.max(), so an invalid form edit is rejected by the Host before persistence and the loaded value is left untouched — the fail-loud semantic of the removedinstallSectionvalidatehook, moved onto the schema.resolveConfigstill re-judges every default and bound at load. - Pin the
@deepseek-ai/dsh-*dev/test dependencies to the published0.1.7-alpha.1line (= the verified host), replacing0.1.5-rc.2, and record0.1.7-alpha.1indshWorkshop.compatibility.dshVersions; the monthly Compat workflow and the README compatibility tables follow.@deepseek-ai/schemasterymoves to^3.18.3in both the peer and dev ranges because.volatile()is called at runtime while building the schema and3.18.2has neither the method nor its type. The peer range narrows to>=0.1.7-alpha.1 <0.2.0: that release is the first carrying the contract this build uses, and every earlier line still shipsinstallSection, so the old range advertised support the code can no longer provide.@deepseek-ai/cordiskeeps its wide^4.0.2peer floor (itsVolatileis a type-only import) while devDeps pin^4.0.3, and@deepseek-ai/cosmokit ^1.8.4is now an explicit devDependency.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.7-alpha.1and describe where the configuration page lives (Plugins page → the TickTick row → Configure) and that its four fields now apply live.
[0.1.7] - 2026-09-12
Changed
- Rename the four translated READMEs to
README-<lang>.md. npm selects the package-page readme as the first markdown file matching its{README,README.*}glob (@npmcli/package-json, publish path), and that glob order putsREADME.<lang>.mdahead ofREADME.md— so npm was serving the Simplified-Chinese file for this package too (measured on 15/15 sampled packages of the family). The new names sit outside the glob, so the English source is served again. No content changed apart from the language-switcher link each translation holds to its siblings, and the repo readme gate still passes. Takes effect with the next release; an already-published version cannot gain a corrected readme retroactively. - Pin the
@deepseek-ai/dsh-*dev/test dependencies to the published0.1.5-rc.2line and record0.1.5-rc.2indshWorkshop.compatibility.dshVersions; the monthly Compat workflow now runs against0.1.5-rc.2. The peer range>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0is unchanged, so no supported host line is dropped.
[0.1.6] - 2026-09-10
Changed
- Pin the
@deepseek-ai/dsh-*dev/test dependencies to the published0.1.5-rc.1line and record0.1.5-rc.1indshWorkshop.compatibility.dshVersions; the monthly Compat workflow now runs against0.1.5-rc.1. The peer range>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0is unchanged, so no supported host line is dropped.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.5-rc.1(verified 2026-09-10).
[0.1.5] - 2026-09-09
Changed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0and pin the dev/test dependencies to the published0.1.5-alpha.1line: adaptation to DeepSeek Harnessdsh-v0.1.5-alpha.1(session format V3,ctx.agentremoval,Inboxtype-only interface); runtime behavior is unchanged for every supported host line. - Record
0.1.5-alpha.1indshWorkshop.compatibility.dshVersions.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.5-alpha.1(verified 2026-09-09).
[0.1.4] - 2026-09-07
Docs
- Fix the DSH plugin badge URL: shields.io rejects the four-segment static badge form with "404 badge not found"; the label now uses the documented double-dash form (
dsh--plugin), rendering identically; no behavior change.
[0.1.3] - 2026-09-07
Fixed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0: the older>=0.1.0-rc.8 <0.2.0band resolved to only the0.1.0-rc.8prerelease under registry-driven resolution and broke fresh tarball installs; no behavior change.
Docs
- Repair the mojibake in the es/pt/hi READMEs, complete their sections, and add the five-language readme-sync gate (
check:readmes); refresh the support-version wording (GitHub tagdsh-v0.1.3-alpha.1leads, npm0.1.2-rc.1pin) and the Desktop Market install note; no behavior change.
[0.1.2] - 2026-09-04
Changed
- Republish under the scoped npm name
@perrylink/dsh-ticktick: the baredsh-ticktickname is owned by another account (publish E403), so the package, the bundle-patch row, the client bundle id, and the five-language install commands now carry the scoped name; the plugin id (ticktick), settings namespace, tools, and repository stay unchanged. - Align the devDependency pins to the published dsh
0.1.2-rc.1line and add thedshWorkshopomdsh-workshop-package/v1 intake manifest (carried over from the unreleased 0.1.1).
[0.1.0] - 2026-09-03
Added
- TickTick (Dida365) task bridge over the official MCP endpoint: minimal streamable-HTTP MCP client (initialize handshake, session-id and protocol-version carry-over, Retry-After on 429,
isErrorsurfaced). TicktickServiceunder theticktickTypert Remote namespace: status, projects, tasks (aggregated with per-list warnings), add (with read-after-write verification), complete, remove, setDue (with the measured move-to-inbox detour for the server-sideupdate_taskcrash), reorder (descending sortOrder semantics), completed (30-day window), search, batchAdd.- Eleven ...
v0.1.9
Changelog
All notable changes to this project are documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.1.9] - 2026-09-22
Changed
- Adapt to DeepSeek Harness
dsh-v0.1.7-alpha.1, whose settings contract replacedinstallSectionwholesale. The plugin now declares its live fields asVolatile<T>Config references (token,tokenFile,mcpUrl,protectedTaskIdscarry.volatile()), announces the page withctx.settings.configure({ auto: false }, ctx.fiber), and reads every live value through.get()at the moment of use — so a saved edit is committed into the running reference and applies without a restart. The token is still re-read per request, now from the Config reference instead of a settings-namespace source callback. The four editable fields are the same four as before:toolCallTimeoutMsand the tool-name pins stay plain, and Schemastery omits a plain field from the generated form, so promoting either one would have invented a new editable surface. - Migrate the browser half's configuration card from the removed
plugins.itemslot toplugins.row.config(key@perrylink/dsh-ticktick#ticktick), which is where a bundle row's own configuration belongs: the page opens from the Configure control on the TickTick row of the Plugins page. The card takes the page owner'sformrender prop instead of the removedctx.settingsScopeservice, dropssettingsScopefrom itsinjectlist (its absence would have left the whole browser half unmounted), and writes path-addressed edits throughform.mutate. - Handle the token as a redacted secret end to end. The field keeps
role('secret'), so the Host omits its value from every form response; the page therefore (a) never renders or caches a stored token — the input reads "already stored — type to replace" and a blank box means "keep", (b) writes field-addressed operations rather than rebuilding the section, because a wholesale replace built from a redacted document would silently delete the stored token, and (c) reports configured-ness from the redaction ledger'ssetflag. The probe result and every error message remain sanitized. No credential value is written to the form, the logs, or the wire. - Converge the Typert wire codec on its single remaining face.
wireStrictno longer carries theschemafield (removed fromTypertCodec's strict form, dead code when present, and never consulted by the Loader) and emits onlycreate: () => schema, which is the one factory the Typert Loader accepts; a strict codec without it is refused at mount. - Harden the configuration page's validation:
mcpUrlnow carries.pattern(/\S/)andtoolCallTimeoutMskeeps.min()/.max(), so an invalid form edit is rejected by the Host before persistence and the loaded value is left untouched — the fail-loud semantic of the removedinstallSectionvalidatehook, moved onto the schema.resolveConfigstill re-judges every default and bound at load. - Pin the
@deepseek-ai/dsh-*dev/test dependencies to the published0.1.7-alpha.1line (= the verified host), replacing0.1.5-rc.2, and record0.1.7-alpha.1indshWorkshop.compatibility.dshVersions; the monthly Compat workflow and the README compatibility tables follow.@deepseek-ai/schemasterymoves to^3.18.3in both the peer and dev ranges because.volatile()is called at runtime while building the schema and3.18.2has neither the method nor its type. The peer range narrows to>=0.1.7-alpha.1 <0.2.0: that release is the first carrying the contract this build uses, and every earlier line still shipsinstallSection, so the old range advertised support the code can no longer provide.@deepseek-ai/cordiskeeps its wide^4.0.2peer floor (itsVolatileis a type-only import) while devDeps pin^4.0.3, and@deepseek-ai/cosmokit ^1.8.4is now an explicit devDependency.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.7-alpha.1and describe where the configuration page lives (Plugins page → the TickTick row → Configure) and that its four fields now apply live.
[0.1.7] - 2026-09-12
Changed
- Rename the four translated READMEs to
README-<lang>.md. npm selects the package-page readme as the first markdown file matching its{README,README.*}glob (@npmcli/package-json, publish path), and that glob order putsREADME.<lang>.mdahead ofREADME.md— so npm was serving the Simplified-Chinese file for this package too (measured on 15/15 sampled packages of the family). The new names sit outside the glob, so the English source is served again. No content changed apart from the language-switcher link each translation holds to its siblings, and the repo readme gate still passes. Takes effect with the next release; an already-published version cannot gain a corrected readme retroactively. - Pin the
@deepseek-ai/dsh-*dev/test dependencies to the published0.1.5-rc.2line and record0.1.5-rc.2indshWorkshop.compatibility.dshVersions; the monthly Compat workflow now runs against0.1.5-rc.2. The peer range>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0is unchanged, so no supported host line is dropped.
[0.1.6] - 2026-09-10
Changed
- Pin the
@deepseek-ai/dsh-*dev/test dependencies to the published0.1.5-rc.1line and record0.1.5-rc.1indshWorkshop.compatibility.dshVersions; the monthly Compat workflow now runs against0.1.5-rc.1. The peer range>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0is unchanged, so no supported host line is dropped.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.5-rc.1(verified 2026-09-10).
[0.1.5] - 2026-09-09
Changed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0and pin the dev/test dependencies to the published0.1.5-alpha.1line: adaptation to DeepSeek Harnessdsh-v0.1.5-alpha.1(session format V3,ctx.agentremoval,Inboxtype-only interface); runtime behavior is unchanged for every supported host line. - Record
0.1.5-alpha.1indshWorkshop.compatibility.dshVersions.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.5-alpha.1(verified 2026-09-09).
[0.1.4] - 2026-09-07
Docs
- Fix the DSH plugin badge URL: shields.io rejects the four-segment static badge form with "404 badge not found"; the label now uses the documented double-dash form (
dsh--plugin), rendering identically; no behavior change.
[0.1.3] - 2026-09-07
Fixed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0: the older>=0.1.0-rc.8 <0.2.0band resolved to only the0.1.0-rc.8prerelease under registry-driven resolution and broke fresh tarball installs; no behavior change.
Docs
- Repair the mojibake in the es/pt/hi READMEs, complete their sections, and add the five-language readme-sync gate (
check:readmes); refresh the support-version wording (GitHub tagdsh-v0.1.3-alpha.1leads, npm0.1.2-rc.1pin) and the Desktop Market install note; no behavior change.
[0.1.2] - 2026-09-04
Changed
- Republish under the scoped npm name
@perrylink/dsh-ticktick: the baredsh-ticktickname is owned by another account (publish E403), so the package, the bundle-patch row, the client bundle id, and the five-language install commands now carry the scoped name; the plugin id (ticktick), settings namespace, tools, and repository stay unchanged. - Align the devDependency pins to the published dsh
0.1.2-rc.1line and add thedshWorkshopomdsh-workshop-package/v1 intake manifest (carried over from the unreleased 0.1.1).
[0.1.0] - 2026-09-03
Added
- TickTick (Dida365) task bridge over the official MCP endpoint: minimal streamable-HTTP MCP client (initialize handshake, session-id and protocol-version carry-over, Retry-After on 429,
isErrorsurfaced). TicktickServiceunder theticktickTypert Remote namespace: status, projects, tasks (aggregated with per-list warnings), add (with read-after-write verification), complete, remove, setDue (with the measured move-to-inbox detour for the server-sideupdate_taskcrash), reorder (descending sortOrder semantics), completed (30-day window), search, batchAdd.- Eleven curated agent tools (
ticktick_status/lists/tasks/add/complete/delete/due/reorder/completed/search/batch_add) plus a system-prompt usage section; Code Mode calls come free viaoutput.schema. - Session-header task panel (
conversation.session.header.actions): list filter, undone/completed views, full-text search, quick add, complete, delete with confirm, inline due dates with overdue/today/tomorrow chips, drag reorder (undone, single-list views). - Plugin settings card (keyed settings slot, key
ticktick; migrated to theplugins.itemlist slot in 0.1.8): secret token, token file, MCP endpoint, protected task ids; live token re-read with 401-triggered client reset. - Protected task ids refuse every mutating operation before any wire call.
- Zero-dependency live-endpoint probes (
probes/) for handshake, CRUD, due-date detour, reorder semantics, and query-tool contract discovery. - Setup UX: DIDA365_TOKEN env fallback, one-step in-panel token setup with a connection status badge, settings-card Test-connection / Clear-credentials buttons, and CN/International endpoint presets.
- Unit specs: domain normalization, MCP client, service workarounds, drag math, due-date presentation, token resolution.
v0.1.7
Changelog
All notable changes to this project are documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.7] - 2026-09-12
Changed
- Rename the four translated READMEs to
README-<lang>.md. npm selects the package-page readme as the first markdown file matching its{README,README.*}glob (@npmcli/package-json, publish path), and that glob order putsREADME.<lang>.mdahead ofREADME.md— so npm was serving the Simplified-Chinese file for this package too (measured on 15/15 sampled packages of the family). The new names sit outside the glob, so the English source is served again. No content changed apart from the language-switcher link each translation holds to its siblings, and the repo readme gate still passes. Takes effect with the next release; an already-published version cannot gain a corrected readme retroactively. - Pin the
@deepseek-ai/dsh-*dev/test dependencies to the published0.1.5-rc.2line and record0.1.5-rc.2indshWorkshop.compatibility.dshVersions; the monthly Compat workflow now runs against0.1.5-rc.2. The peer range>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0is unchanged, so no supported host line is dropped.
[0.1.6] - 2026-09-10
Changed
- Pin the
@deepseek-ai/dsh-*dev/test dependencies to the published0.1.5-rc.1line and record0.1.5-rc.1indshWorkshop.compatibility.dshVersions; the monthly Compat workflow now runs against0.1.5-rc.1. The peer range>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0is unchanged, so no supported host line is dropped.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.5-rc.1(verified 2026-09-10).
[0.1.5] - 2026-09-09
Changed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0and pin the dev/test dependencies to the published0.1.5-alpha.1line: adaptation to DeepSeek Harnessdsh-v0.1.5-alpha.1(session format V3,ctx.agentremoval,Inboxtype-only interface); runtime behavior is unchanged for every supported host line. - Record
0.1.5-alpha.1indshWorkshop.compatibility.dshVersions.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.5-alpha.1(verified 2026-09-09).
[0.1.4] - 2026-09-07
Docs
- Fix the DSH plugin badge URL: shields.io rejects the four-segment static badge form with "404 badge not found"; the label now uses the documented double-dash form (
dsh--plugin), rendering identically; no behavior change.
[0.1.3] - 2026-09-07
Fixed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0: the older>=0.1.0-rc.8 <0.2.0band resolved to only the0.1.0-rc.8prerelease under registry-driven resolution and broke fresh tarball installs; no behavior change.
Docs
- Repair the mojibake in the es/pt/hi READMEs, complete their sections, and add the five-language readme-sync gate (
check:readmes); refresh the support-version wording (GitHub tagdsh-v0.1.3-alpha.1leads, npm0.1.2-rc.1pin) and the Desktop Market install note; no behavior change.
[0.1.2] - 2026-09-04
Changed
- Republish under the scoped npm name
@perrylink/dsh-ticktick: the baredsh-ticktickname is owned by another account (publish E403), so the package, the bundle-patch row, the client bundle id, and the five-language install commands now carry the scoped name; the plugin id (ticktick), settings namespace, tools, and repository stay unchanged. - Align the devDependency pins to the published dsh
0.1.2-rc.1line and add thedshWorkshopomdsh-workshop-package/v1 intake manifest (carried over from the unreleased 0.1.1).
[0.1.0] - 2026-09-03
Added
- TickTick (Dida365) task bridge over the official MCP endpoint: minimal streamable-HTTP MCP client (initialize handshake, session-id and protocol-version carry-over, Retry-After on 429,
isErrorsurfaced). TicktickServiceunder theticktickTypert Remote namespace: status, projects, tasks (aggregated with per-list warnings), add (with read-after-write verification), complete, remove, setDue (with the measured move-to-inbox detour for the server-sideupdate_taskcrash), reorder (descending sortOrder semantics), completed (30-day window), search, batchAdd.- Eleven curated agent tools (
ticktick_status/lists/tasks/add/complete/delete/due/reorder/completed/search/batch_add) plus a system-prompt usage section; Code Mode calls come free viaoutput.schema. - Session-header task panel (
conversation.session.header.actions): list filter, undone/completed views, full-text search, quick add, complete, delete with confirm, inline due dates with overdue/today/tomorrow chips, drag reorder (undone, single-list views). - Plugin settings card (
settings.plugin.item, keyticktick): secret token, token file, MCP endpoint, protected task ids; live token re-read with 401-triggered client reset. - Protected task ids refuse every mutating operation before any wire call.
- Zero-dependency live-endpoint probes (
probes/) for handshake, CRUD, due-date detour, reorder semantics, and query-tool contract discovery. - Setup UX: DIDA365_TOKEN env fallback, one-step in-panel token setup with a connection status badge, settings-card Test-connection / Clear-credentials buttons, and CN/International endpoint presets.
- Unit specs: domain normalization, MCP client, service workarounds, drag math, due-date presentation, token resolution.
v0.1.6
Changelog
All notable changes to this project are documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.1.6] - 2026-09-10
Changed
- Pin the
@deepseek-ai/dsh-*dev/test dependencies to the published0.1.5-rc.1line and record0.1.5-rc.1indshWorkshop.compatibility.dshVersions; the monthly Compat workflow now runs against0.1.5-rc.1. The peer range>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0is unchanged, so no supported host line is dropped.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.5-rc.1(verified 2026-09-10).
[0.1.5] - 2026-09-09
Changed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0and pin the dev/test dependencies to the published0.1.5-alpha.1line: adaptation to DeepSeek Harnessdsh-v0.1.5-alpha.1(session format V3,ctx.agentremoval,Inboxtype-only interface); runtime behavior is unchanged for every supported host line. - Record
0.1.5-alpha.1indshWorkshop.compatibility.dshVersions.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.5-alpha.1(verified 2026-09-09).
[0.1.4] - 2026-09-07
Docs
- Fix the DSH plugin badge URL: shields.io rejects the four-segment static badge form with "404 badge not found"; the label now uses the documented double-dash form (
dsh--plugin), rendering identically; no behavior change.
[0.1.3] - 2026-09-07
Fixed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0: the older>=0.1.0-rc.8 <0.2.0band resolved to only the0.1.0-rc.8prerelease under registry-driven resolution and broke fresh tarball installs; no behavior change.
Docs
- Repair the mojibake in the es/pt/hi READMEs, complete their sections, and add the five-language readme-sync gate (
check:readmes); refresh the support-version wording (GitHub tagdsh-v0.1.3-alpha.1leads, npm0.1.2-rc.1pin) and the Desktop Market install note; no behavior change.
[0.1.2] - 2026-09-04
Changed
- Republish under the scoped npm name
@perrylink/dsh-ticktick: the baredsh-ticktickname is owned by another account (publish E403), so the package, the bundle-patch row, the client bundle id, and the five-language install commands now carry the scoped name; the plugin id (ticktick), settings namespace, tools, and repository stay unchanged. - Align the devDependency pins to the published dsh
0.1.2-rc.1line and add thedshWorkshopomdsh-workshop-package/v1 intake manifest (carried over from the unreleased 0.1.1).
[0.1.0] - 2026-09-03
Added
- TickTick (Dida365) task bridge over the official MCP endpoint: minimal streamable-HTTP MCP client (initialize handshake, session-id and protocol-version carry-over, Retry-After on 429,
isErrorsurfaced). TicktickServiceunder theticktickTypert Remote namespace: status, projects, tasks (aggregated with per-list warnings), add (with read-after-write verification), complete, remove, setDue (with the measured move-to-inbox detour for the server-sideupdate_taskcrash), reorder (descending sortOrder semantics), completed (30-day window), search, batchAdd.- Eleven curated agent tools (
ticktick_status/lists/tasks/add/complete/delete/due/reorder/completed/search/batch_add) plus a system-prompt usage section; Code Mode calls come free viaoutput.schema. - Session-header task panel (
conversation.session.header.actions): list filter, undone/completed views, full-text search, quick add, complete, delete with confirm, inline due dates with overdue/today/tomorrow chips, drag reorder (undone, single-list views). - Plugin settings card (
settings.plugin.item, keyticktick): secret token, token file, MCP endpoint, protected task ids; live token re-read with 401-triggered client reset. - Protected task ids refuse every mutating operation before any wire call.
- Zero-dependency live-endpoint probes (
probes/) for handshake, CRUD, due-date detour, reorder semantics, and query-tool contract discovery. - Setup UX: DIDA365_TOKEN env fallback, one-step in-panel token setup with a connection status badge, settings-card Test-connection / Clear-credentials buttons, and CN/International endpoint presets.
- Unit specs: domain normalization, MCP client, service workarounds, drag math, due-date presentation, token resolution.
v0.1.5
Changelog
All notable changes to this project are documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.5] - 2026-09-09
Changed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0and pin the dev/test dependencies to the published0.1.5-alpha.1line: adaptation to DeepSeek Harnessdsh-v0.1.5-alpha.1(session format V3,ctx.agentremoval,Inboxtype-only interface); runtime behavior is unchanged for every supported host line. - Record
0.1.5-alpha.1indshWorkshop.compatibility.dshVersions.
Docs
- Refresh the five-language README compatibility baseline to
dsh-v0.1.5-alpha.1(verified 2026-09-09).
[0.1.4] - 2026-09-07
Docs
- Fix the DSH plugin badge URL: shields.io rejects the four-segment static badge form with "404 badge not found"; the label now uses the documented double-dash form (
dsh--plugin), rendering identically; no behavior change.
[0.1.3] - 2026-09-07
Fixed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0: the older>=0.1.0-rc.8 <0.2.0band resolved to only the0.1.0-rc.8prerelease under registry-driven resolution and broke fresh tarball installs; no behavior change.
Docs
- Repair the mojibake in the es/pt/hi READMEs, complete their sections, and add the five-language readme-sync gate (
check:readmes); refresh the support-version wording (GitHub tagdsh-v0.1.3-alpha.1leads, npm0.1.2-rc.1pin) and the Desktop Market install note; no behavior change.
[0.1.2] - 2026-09-04
Changed
- Republish under the scoped npm name
@perrylink/dsh-ticktick: the baredsh-ticktickname is owned by another account (publish E403), so the package, the bundle-patch row, the client bundle id, and the five-language install commands now carry the scoped name; the plugin id (ticktick), settings namespace, tools, and repository stay unchanged. - Align the devDependency pins to the published dsh
0.1.2-rc.1line and add thedshWorkshopomdsh-workshop-package/v1 intake manifest (carried over from the unreleased 0.1.1).
[0.1.0] - 2026-09-03
Added
- TickTick (Dida365) task bridge over the official MCP endpoint: minimal streamable-HTTP MCP client (initialize handshake, session-id and protocol-version carry-over, Retry-After on 429,
isErrorsurfaced). TicktickServiceunder theticktickTypert Remote namespace: status, projects, tasks (aggregated with per-list warnings), add (with read-after-write verification), complete, remove, setDue (with the measured move-to-inbox detour for the server-sideupdate_taskcrash), reorder (descending sortOrder semantics), completed (30-day window), search, batchAdd.- Eleven curated agent tools (
ticktick_status/lists/tasks/add/complete/delete/due/reorder/completed/search/batch_add) plus a system-prompt usage section; Code Mode calls come free viaoutput.schema. - Session-header task panel (
conversation.session.header.actions): list filter, undone/completed views, full-text search, quick add, complete, delete with confirm, inline due dates with overdue/today/tomorrow chips, drag reorder (undone, single-list views). - Plugin settings card (
settings.plugin.item, keyticktick): secret token, token file, MCP endpoint, protected task ids; live token re-read with 401-triggered client reset. - Protected task ids refuse every mutating operation before any wire call.
- Zero-dependency live-endpoint probes (
probes/) for handshake, CRUD, due-date detour, reorder semantics, and query-tool contract discovery. - Setup UX: DIDA365_TOKEN env fallback, one-step in-panel token setup with a connection status badge, settings-card Test-connection / Clear-credentials buttons, and CN/International endpoint presets.
- Unit specs: domain normalization, MCP client, service workarounds, drag math, due-date presentation, token resolution.
v0.1.4
Changelog
All notable changes to this project are documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.4] - 2026-09-07
Docs
- Fix the DSH plugin badge URL: shields.io rejects the four-segment static badge form with "404 badge not found"; the label now uses the documented double-dash form (
dsh--plugin), rendering identically; no behavior change.
[0.1.3] - 2026-09-07
Fixed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0: the older>=0.1.0-rc.8 <0.2.0band resolved to only the0.1.0-rc.8prerelease under registry-driven resolution and broke fresh tarball installs; no behavior change.
Docs
- Repair the mojibake in the es/pt/hi READMEs, complete their sections, and add the five-language readme-sync gate (
check:readmes); refresh the support-version wording (GitHub tagdsh-v0.1.3-alpha.1leads, npm0.1.2-rc.1pin) and the Desktop Market install note; no behavior change.
[0.1.2] - 2026-09-04
Changed
- Republish under the scoped npm name
@perrylink/dsh-ticktick: the baredsh-ticktickname is owned by another account (publish E403), so the package, the bundle-patch row, the client bundle id, and the five-language install commands now carry the scoped name; the plugin id (ticktick), settings namespace, tools, and repository stay unchanged. - Align the devDependency pins to the published dsh
0.1.2-rc.1line and add thedshWorkshopomdsh-workshop-package/v1 intake manifest (carried over from the unreleased 0.1.1).
[0.1.0] - 2026-09-03
Added
- TickTick (Dida365) task bridge over the official MCP endpoint: minimal streamable-HTTP MCP client (initialize handshake, session-id and protocol-version carry-over, Retry-After on 429,
isErrorsurfaced). TicktickServiceunder theticktickTypert Remote namespace: status, projects, tasks (aggregated with per-list warnings), add (with read-after-write verification), complete, remove, setDue (with the measured move-to-inbox detour for the server-sideupdate_taskcrash), reorder (descending sortOrder semantics), completed (30-day window), search, batchAdd.- Eleven curated agent tools (
ticktick_status/lists/tasks/add/complete/delete/due/reorder/completed/search/batch_add) plus a system-prompt usage section; Code Mode calls come free viaoutput.schema. - Session-header task panel (
conversation.session.header.actions): list filter, undone/completed views, full-text search, quick add, complete, delete with confirm, inline due dates with overdue/today/tomorrow chips, drag reorder (undone, single-list views). - Plugin settings card (
settings.plugin.item, keyticktick): secret token, token file, MCP endpoint, protected task ids; live token re-read with 401-triggered client reset. - Protected task ids refuse every mutating operation before any wire call.
- Zero-dependency live-endpoint probes (
probes/) for handshake, CRUD, due-date detour, reorder semantics, and query-tool contract discovery. - Setup UX: DIDA365_TOKEN env fallback, one-step in-panel token setup with a connection status badge, settings-card Test-connection / Clear-credentials buttons, and CN/International endpoint presets.
- Unit specs: domain normalization, MCP client, service workarounds, drag math, due-date presentation, token resolution.
v0.1.3
Changelog
All notable changes to this project are documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.3] - 2026-09-07
Fixed
- Align the
@deepseek-ai/dsh-*peer ranges to>=0.1.2-rc.1 <0.2.0: the older>=0.1.0-rc.8 <0.2.0band resolved to only the0.1.0-rc.8prerelease under registry-driven resolution and broke fresh tarball installs; no behavior change.
Docs
- Repair the mojibake in the es/pt/hi READMEs, complete their sections, and add the five-language readme-sync gate (
check:readmes); refresh the support-version wording (GitHub tagdsh-v0.1.3-alpha.1leads, npm0.1.2-rc.1pin) and the Desktop Market install note; no behavior change.
[0.1.2] - 2026-09-04
Changed
- Republish under the scoped npm name
@perrylink/dsh-ticktick: the baredsh-ticktickname is owned by another account (publish E403), so the package, the bundle-patch row, the client bundle id, and the five-language install commands now carry the scoped name; the plugin id (ticktick), settings namespace, tools, and repository stay unchanged. - Align the devDependency pins to the published dsh
0.1.2-rc.1line and add thedshWorkshopomdsh-workshop-package/v1 intake manifest (carried over from the unreleased 0.1.1).
[0.1.0] - 2026-09-03
Added
- TickTick (Dida365) task bridge over the official MCP endpoint: minimal streamable-HTTP MCP client (initialize handshake, session-id and protocol-version carry-over, Retry-After on 429,
isErrorsurfaced). TicktickServiceunder theticktickTypert Remote namespace: status, projects, tasks (aggregated with per-list warnings), add (with read-after-write verification), complete, remove, setDue (with the measured move-to-inbox detour for the server-sideupdate_taskcrash), reorder (descending sortOrder semantics), completed (30-day window), search, batchAdd.- Eleven curated agent tools (
ticktick_status/lists/tasks/add/complete/delete/due/reorder/completed/search/batch_add) plus a system-prompt usage section; Code Mode calls come free viaoutput.schema. - Session-header task panel (
conversation.session.header.actions): list filter, undone/completed views, full-text search, quick add, complete, delete with confirm, inline due dates with overdue/today/tomorrow chips, drag reorder (undone, single-list views). - Plugin settings card (
settings.plugin.item, keyticktick): secret token, token file, MCP endpoint, protected task ids; live token re-read with 401-triggered client reset. - Protected task ids refuse every mutating operation before any wire call.
- Zero-dependency live-endpoint probes (
probes/) for handshake, CRUD, due-date detour, reorder semantics, and query-tool contract discovery. - Setup UX: DIDA365_TOKEN env fallback, one-step in-panel token setup with a connection status badge, settings-card Test-connection / Clear-credentials buttons, and CN/International endpoint presets.
- Unit specs: domain normalization, MCP client, service workarounds, drag math, due-date presentation, token resolution.
v0.1.2
Changelog
All notable changes to this project are documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.2] - 2026-09-04
Changed
- Republish under the scoped npm name
@perrylink/dsh-ticktick: the baredsh-ticktickname is owned by another account (publish E403), so the package, the bundle-patch row, the client bundle id, and the five-language install commands now carry the scoped name; the plugin id (ticktick), settings namespace, tools, and repository stay unchanged. - Align the devDependency pins to the published dsh
0.1.2-rc.1line and add thedshWorkshopomdsh-workshop-package/v1 intake manifest (carried over from the unreleased 0.1.1).
[0.1.0] - 2026-09-03
Added
- TickTick (Dida365) task bridge over the official MCP endpoint: minimal streamable-HTTP MCP client (initialize handshake, session-id and protocol-version carry-over, Retry-After on 429,
isErrorsurfaced). TicktickServiceunder theticktickTypert Remote namespace: status, projects, tasks (aggregated with per-list warnings), add (with read-after-write verification), complete, remove, setDue (with the measured move-to-inbox detour for the server-sideupdate_taskcrash), reorder (descending sortOrder semantics), completed (30-day window), search, batchAdd.- Eleven curated agent tools (
ticktick_status/lists/tasks/add/complete/delete/due/reorder/completed/search/batch_add) plus a system-prompt usage section; Code Mode calls come free viaoutput.schema. - Session-header task panel (
conversation.session.header.actions): list filter, undone/completed views, full-text search, quick add, complete, delete with confirm, inline due dates with overdue/today/tomorrow chips, drag reorder (undone, single-list views). - Plugin settings card (
settings.plugin.item, keyticktick): secret token, token file, MCP endpoint, protected task ids; live token re-read with 401-triggered client reset. - Protected task ids refuse every mutating operation before any wire call.
- Zero-dependency live-endpoint probes (
probes/) for handshake, CRUD, due-date detour, reorder semantics, and query-tool contract discovery. - Setup UX: DIDA365_TOKEN env fallback, one-step in-panel token setup with a connection status badge, settings-card Test-connection / Clear-credentials buttons, and CN/International endpoint presets.
- Unit specs: domain normalization, MCP client, service workarounds, drag math, due-date presentation, token resolution.