Skip to content

feat(notes): link note to specific day via temporal prefix (#232) - #233

Merged
pajoma merged 7 commits into
developfrom
feat/177-smart-input-tokenizer
Jun 2, 2026
Merged

feat(notes): link note to specific day via temporal prefix (#232)#233
pajoma merged 7 commits into
developfrom
feat/177-smart-input-tokenizer

Conversation

@pajoma

@pajoma pajoma commented Jun 2, 2026

Copy link
Copy Markdown
Owner

Summary

This PR implements Issue #232, allowing users to create notes linked to specific days by prefixing the note title with a temporal expression (e.g., \mon SecurityReview).

Changes

  • Parser Integration: Updated \Parser.resolveNotePathForInput\ to use \input.generateDate(), ensuring note files are stored in the correct date-based directory.
  • Link Injection: Updated \LoadNotes.loadWithPath\ to forward \offset, \date, and \scope\ to the entry link injection, targeting the correct journal page instead of always today.
  • Robustness: Fixed a bug in \getDateFromURI\ where \moment.js\ would overflow when parsing '31' in months with fewer days (e.g., June).
  • Test Stability: Refactored
    otes-sync.test.ts\ to use isolated temporary directories and workspace configuration, eliminating flaky CI behavior.

Verification

  • Added \issue-232-note-offset.test.ts\ covering 4 scenarios: default (today), positive offset, negative offset, and path resolution.
  • Added Add support to create note for specific journal entry #149 regression tests for task+weekday parsing.
  • Verified all MatchInput and NotesSync tests pass locally.

Closes #232. Related to #149 and #177.

pajoma and others added 7 commits June 1, 2026 18:41
…romURI

moment("31", "DD").date() overflows in months with fewer than 31 days
(e.g. June): the moment wraps to the next month, returning 1 instead of 31.
Parse the file string directly as an integer when it is a plain number.

fix(test): align notes-sync base dir between ctrl and global extension

FakeWorkspaceConfig({}) defaulted to ~/Journal while the global extension
used the stale workspace journal.base. Update the workspace setting to a
fresh temp dir so both paths agree and sync can find the note.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Proves 'task mon buy groceries' resolves to Monday with clean text,
and 'mond' is correctly left as text (not a valid weekday alias).

#149

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
#232

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Parser.resolveNotePathForInput now uses input.generateDate() instead of
new Date() so note files are stored under the correct date directory.

LoadNotes.loadWithPath forwards offset, date, and scope to the entry
link injection instead of hardcoding Input(0) (today). Default offset=0
preserves existing behaviour.

#232

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ured locale only)

weekdayVocab() and monthVocab() now return English entries plus the
entries for the user's configured locale only (primary subtag matched).
A German user sees 'so'/'di'/'do' etc; a Dutch user sees 'zo'/'vr'/'za';
neither bleeds into the other.

Adds 10 locale-isolation regression tests. Updates input.test.ts German
positive-control tests to pass locale='de' explicitly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@pajoma
pajoma merged commit ff8d9f0 into develop Jun 2, 2026
2 checks passed
@pajoma
pajoma deleted the feat/177-smart-input-tokenizer branch June 2, 2026 15:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(notes): create note linked to specific day via temporal input

1 participant