Repository navigation
0.3.0-rc.20: TaskNotes settings record and tasknotes.task rc.6 - #25
Merged
Merged
Conversation
…c.6) - Generate tasknotes.task 0.3.0-rc.6 bindings without nlp, templating, time tracking, archive moves, checkbox resets, link write format or per-status automation; return them as resources.appSettings. - Add ./settings: Reader's app-settings logic plus the tasknotes.settings 1.0.0 definition, legacy-binding fallback, migration patches and the published contract, schema and tasknotes-settings type. - Read rc.5/rc.3 types; resolve record, then binding, then fallback. - Contract at _contracts/tasknotes.task/0.3.0-rc.6.md; type version 5; starter revision 6; pack 0.3.0-rc.19; package 0.3.0-rc.20.
This was referenced Oct 27, 2026
Merged
callumalpass
marked this pull request as ready for review
October 27, 2026 19:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of the TaskNotes app-settings change. Order: tasknotes-spec rc.6 → mdbase-contracts rc.19 → publish this package → TaskNotes App ships → TaskNotes plugin upgrades collections. Cross-links are added once all PRs exist.
Not published. The version is bumped to 0.3.0-rc.20, but
npm publishhas not been run. The plugin and app PRs use a packed tarball (npm pack, vendored astasknotes-model-0.3.0-rc.20.tgz) until this is published. Switch them to the registry version before merging.Changes
nlp,templating,time_tracking, archive moves, checkbox resets, the link write format or per-status automation.buildTaskNotesMdbaseResourcesreturns those settings asappSettings.@tasknotes/model/settings:settings_versionor another app's record, build new-record frontmatter, and write Markdown in place, keeping unknown fields, comments and the body.dev.tasknotes,_settings/dev.tasknotes.md, settings_version 1).resolveTaskNotesAppSettings, which reads the record, then the legacy binding, then the fallback. Status behaviour merges per status and per property.taskNotesAppSettingsFromLegacyBinding,withoutTaskNotesAppSettings, andabsentTaskNotesSettingsPatch(what a migration adds to a record that already exists).buildTaskNotesSettingsResources: thetasknotes.settings1.0.0 contract and schema, plus atasknotes-settingstype that implementsmdbase.app-settings1.0.0 andtasknotes.settings1.0.0, withcollection.uniqueonapp.resolveTaskNotesModelConfigFromMdbaseType(type, fallback, { settings })applies record fields over the binding.upgradeTaskNotesMdbaseTypeContractlifts an rc.5 type to rc.6 and returns the settings it removed.patchTaskNotesMdbaseTypeSettingsno longer patches the moved fields. UsebuildTaskNotesSettingsPatch._contracts/tasknotes.task/0.3.0-rc.6.md, so the rc.5 contract can stay where it is.TASKNOTES_MDBASE_PACK_VERSION0.3.0-rc.19TASKNOTES_CONTRACT_DIGESTTASKNOTES_LEGACY_CONTRACT_DIGESTSDecisions
exclude_from_cyclewith no value anywhere defaults to "the status is skipped". An unedited starter therefore keepscancelledout of the cycle.nlp_triggersabsent or null means each client uses its own defaults, matching rc.5, where the binding'snlpwas optional.Checks
npm test: 117/117 pass, including the newtest/settings.test.mjs(precedence, rc.5 upgrade split, patch, conflicts, read-only, migration patch for an existing record).npm run typecheck: clean.npm run test:package: passes.test/starter.test.mjspins the rc.19 pack digests from the mdbase-contracts PR.Related PRs
Order: contracts → model publish → App ships → plugin upgrades collections.