Repository navigation
Releases
Daymark 1.12.0
Daymark 1.12.0: tags, clearer Related, a real Help, full screen and pen tools
Tags and Help (Cycle 18)
- Tags: type
#projector#project/daymarkin any note (frontmattertags:works too). Tags show as chips; click one to see every note with it. - Tags section under the folder tree lists every tag with a count. Nested tags are indented. Searching
#projectfilters to that tag and its nested tags. - Graph tag view: the Tag filter lists your real tags, and tag lines join notes that share one. Tags written in handwritten text boxes count.
- Related explains itself: a shared tag is enough on its own to suggest a note. Each suggestion says what the notes share, for example
shares: sync, conflict, #daymark. Weaker matches appear under Possibly related when there are few strong ones. - Help is now a full-size page with search, Web / Tablet / Phone instructions, short steps, real screenshots and Show me buttons. Open it from the new Help button in the side menu, Settings → Help, or
?.
Pen writing and full screen (Cycle 17)
- Full screen for every note (Ctrl/⌘ + .). Handwritten notes get a side rail of pen tools, on the left or right.
- S Pen side button erases while held, in the Android app too.
- Select: loop around ink or text boxes to move, resize, recolour, copy, cut, paste, duplicate or delete. Press S, or tap Select again, to get your pen back.
- Text boxes let you type on handwritten pages without a pen, with width grips and a size and colour bar.
- Draw-and-hold shapes: draw a line, arrow or shape and hold still at the end to tidy it.
Upgrading: install daymark-1.12.0.apk over 1.11.x. No uninstall is needed: it is signed with the same key. Deploy the server as usual. Your notes are not rewritten: tags are read from the note text, so devices on 1.11 and 1.12 sync the same notes.
Checks
- 2,295 unit tests pass (1 skipped).
- Browser checks: 56 of 56. Two-device sync: 56 of 56.
- Markdown rendering audit: 372 of 372, including a new tag case.
- Lint, production build, signed Android release build and Kotlin tests pass.
- A separate whole-branch review found no critical issues. Its four important findings were fixed before release.
Still to try on the Samsung tablet: tags written in text boxes and the new Help on the tablet layout.
Full notes: Cycle 17, Cycle 18. SHA-256 of the APK is in SHA256SUMS.
Daymark 1.11.1
Daymark 1.11.1: smoother pen writing, new toolbar, highlight without a pen
- Smoother pen writing: saving a stroke no longer redraws the whole app, ink is drawn from the pen's raw position updates as they arrive, and a highlighter stroke repaints only its own area. In a test that slows the CPU four times to roughly match a tablet, 95% of pen points now appear within about 8 ms (was 15.5 ms) and pauses longer than 50 ms dropped from 8 to 1–3 per 20 strokes. No strokes are lost.
- New writing toolbar, like Samsung Notes: one compact row with pen, highlighter and eraser icons, undo and redo, quick colours and page controls. Tap the active tool again for all colours and sizes, or the eraser mode. On narrow panes the page controls stay visible and only the colours scroll.
- Highlight without a pen: on a laptop, phone or tablet, select words and tap Highlighter in the typed-note toolbar. Tap it again on the same words to remove the highlight; with text selected, a colour dot recolours it. With nothing selected, Highlighter still switches the S Pen drag mode on or off.
- Upgrading: install
daymark-1.11.1.apkover 1.11.0; no uninstall is needed (same signing key). Deploy the server as usual.
Checks
- 2,015 unit tests pass (1 skipped); browser QA 831 of 831; two-browser sync test passes.
- Real-app pen benchmark at 4x CPU slowdown: 95% of points drawn within about 8 ms (was 15.5 ms); no strokes lost.
- Lint, production build, signed Android release build and Kotlin tests pass.
Still to judge on the Samsung tablet: how writing feels with the S Pen.
SHA-256 of the APK is in SHA256SUMS.
Daymark 1.11.0
Daymark 1.11.0: write with the pen, read everywhere
Handwritten study pages now live beside your typed notes and travel through your own sync server.
What's changed
- Handwritten notebooks: open the ▾ menu beside New note, choose Handwritten note, then lined, grid or blank paper. Use pressure-sensitive pens, a highlighter and an eraser with area and whole-stroke modes. Undo, Redo and page controls keep writing manageable. Notes keep their folders, titles and pins; the column shows a pen icon and page count.
- Read on your other devices: devices without pen input open handwritten pages read only. Pen input enables writing tools. Ink syncs page by page; concurrent strokes are kept together. ZIP and JSON backups include ink; Markdown export carries a short placeholder. Older apps keep syncing without erasing the ink, but need updating to view it.
- Highlight typed notes with the S Pen: turn on Highlighter in the note toolbar, choose a colour and drag across words. The highlight snaps to those words and stays with them through edits and sync. Turn the tool off for ordinary pen behaviour. With the highlighter on, a finger only scrolls the note; mouse behaviour stays as usual. Turn the tool off to tap or select text with a finger.
- Tablet controls clear the status bar: top controls reserve the Android inset in portrait and landscape, including Notes navigation, dialogs and the graph.
- Widgets follow your warning settings: task widgets use Needs attention after, Urgent after, the aging warnings switch and counting days, so their warnings agree with the app. Older widget data still uses the usual 3- and 7-day defaults when settings are missing.
- Signed Android releases: future updates use a stable release signing key. The first switch needs the steps below.
One-time switch to the signed APK
- Update the server to 1.11 first. Older servers keep handwriting on the tablet only; handwritten pages sync through Daymark 1.11 or later.
- Sync (or make a backup) first. Make sure your latest notes have reached the server, or save a ZIP or JSON backup somewhere outside the app. Uninstalling deletes anything stored only in the app.
- Uninstall the old app. This also removes its home-screen widgets.
- Install the signed APK,
daymark-1.11.0.apk, from the release.SHA256SUMSaccompanies it. - Sign in again to your sync server. If you used a backup instead of sync, restore it.
- Re-add your home-screen widgets.
There is a new signing key. Android refuses to update an app signed with a different key, which is why uninstalling is necessary once. Later updates signed with this same key can install over the app.
For the person building releases: back up the keystore and its passwords securely in separate locations. Losing them prevents future updates from installing over the app. The signing setup and backup instructions are in Getting started and install. Keep signing files and passwords outside the repository.
Known limits
- The first pen touch on a read-only page switches it to writing; that touch does not draw. Touch again to start writing.
- With the typed-note highlighter on, a finger only scrolls the note. Turn it off to tap or select text with a finger.
- Ink drawing runs in the app's WebView. The owner's trial on the Samsung tablet is the final acceptance, and the APK has not been tried on a real device. Browser pointer checks cannot establish real S Pen latency or palm rejection.
- Daymark 1.10.0 keeps typed-note highlights when it edits a note, but shows them as raw
<mark>tags instead of colours; update every device to 1.11. - Finger scrolling on a page you can write on has no momentum, and pinch zoom is off on writable pages.
- Handwriting is not searchable (title only). There is no handwriting recognition, lasso selection, shape tool or inserted picture support on handwritten pages.
Checks
- 1,978 unit tests pass (1 skipped); browser QA 826 of 826; two-browser sync test passed twice.
- Ink writing benchmark: 95% of pen points drawn within 13.1 ms (target 16 ms), no long tasks.
- Lint, production build, Android release build and 50 Kotlin tests pass.
SHA-256 of the APK is in SHA256SUMS.
Daymark 1.10.0
Daymark 1.10.0: safer sync across devices, and alert counting days
New
- Choose which days count for warnings. Settings › Old-task warnings has two separate choices: Task aging counts and Habit warnings count, each Weekdays (Mon to Fri), Weekends (Sat and Sun) or All week (the default, same as before). Only the chosen days add to a task's age or a habit's missed days. Warnings still show on the other days; the count just doesn't go up. The Android widgets use the same choice.
Sync: audited and fixed
Every kind of synced data (days and tasks, notes, folders, settings, habits, backlog, note pictures) was tested with several devices editing at once, going offline, losing connections and restarting the server, plus a randomized three-device test. These problems were found and fixed:
- Changing two different settings on two devices no longer makes one of them disappear.
- Editing different parts of the same habit or backlog item on two devices keeps both edits; clearing a field stays cleared.
- A device whose clock is set far in the future can no longer win every conflict, or undo a backlog Undo made elsewhere.
- A device with more than 5,000 unsynced changes (or a lot of large notes) no longer gets stuck; it syncs in batches.
- A damaged picture file on the server is no longer handed out, and the next upload repairs it. Checking pictures no longer slows the server down.
- Reordering tasks on one device no longer blocks a delete made on another.
- A task moved to another day while edited on another device no longer ends up on two days; the edit is kept on the moved task. A later move is no longer undone by another device's earlier move away, and task history keeps every move.
- Picking the same backlog item on two devices no longer drops one device's task history.
- When two devices change the same note's folder or title at once, the newer change wins and you're told about the clash.
Upgrading
- Deploy the server as usual (
docker compose up -d --build); the merge fixes run on the server too. - Android: install this APK over 1.9.x. Your data, sign-in and widgets stay.
- Devices still on 1.9.1 or earlier keep syncing with updated devices without losing data. Update them when convenient.
Known limits
- In a rare sequence where two devices switch the same setting back and forth between syncs, one change can be overwritten without a notice.
- If a very large multi-batch sync fails partway, a retry can create an extra conflict copy of a note.
- Background photos stay on the device where you added them (by design).
- The widget warning thresholds are still fixed at 3 and 7 days.
- This APK hasn't been tried on a real phone yet. It builds and its tests pass.
Checks
- 1,843 unit tests pass (1 skipped); 25 randomized three-device runs pass.
- Two-browser sync test passed (2 of 2 runs); QA browser suite 822 checks, 0 failed.
- Lint, production build, Android build and Kotlin tests pass.
SHA-256 of the APK is in SHA256SUMS.
Daymark 1.9.1: tasks stay done across devices
Daymark 1.9.1: tasks stay done across devices
Fixed
- A task you marked done no longer comes back as open. When you use several devices or browsers, one that had been asleep or offline could undo your "done" before it caught up: by dismissing the task's alert, or by carrying its old open copy into the new day. Edits to the same task on two devices are now combined field by field, so "done" on one device and "alert dismissed" on the other both stick.
- Old copies made on a stale device are removed. If a device carried a task into today before it learned the task was already finished, that extra open copy (and its age alert) disappears at the next sync on any device.
- The new day waits for sync before carrying tasks. With sync on, a device that wakes up on a new day syncs first (up to 8 seconds) and only then moves unfinished tasks to today. Offline, it moves them after the wait as before.
Upgrading
- Update the server too:
docker compose up -d --build. The server uses the same merge rules, so the fix is complete only once the server and every device run 1.9.1. - Android: install this APK over 1.9.0. Your notes, habits, backlog, pictures, sign-in and widgets stay.
- Tasks that were wrongly reopened before this update are not closed automatically; tick them done again.
- No data or sync format change.
Checks
Lint, 1,515 unit tests (8 new for this fix), 23 helper tests, 822 browser checks, the two-device sync test, the offline/installable app test, and the Android build with its Kotlin tests all pass.
Daymark 1.9.0: one-column Notes
Daymark 1.9.0: one-column Notes
New
- One column for your notes. The separate folder tree and notes list are now a single column, like Obsidian's file explorer: search, then + New note ▾ / New folder / List | Graph, then your folders with the notes inside them, shown by title. There is no "All notes" or "Notes (top level)" row; notes without a folder sit after the folders. Pinned notes get a Pinned group at the top and stay in their folder. The editor gets the freed width.
- Search filters in place. Only the folders and notes that match remain, matches are highlighted, a note that matched only in its text shows a short snippet, and "N notes match" is announced. The note you have open stays visible (dimmed) so it never disappears under you.
- New note and New folder go where you are. They land in the folder you last clicked or opened; with nothing opened yet they go to the top level. Drag a note onto a folder to move it, or onto the Move to top level strip that appears while you drag.
- Keyboard and large vaults. Arrow keys, Home/End, Enter, and Shift+F10 (or the Menu key) for a folder's actions. The column stays smooth with 1,000+ notes.
- More room. The Notes page header row is gone, and the List | Graph switch moved into the column (and into the graph toolbar). Below 1100 px the column opens as a drawer from the Notes button; minimized, it becomes a thin strip with Search, New note, New folder and your top folders; on a phone it is the Notes screen, then the note, with Back.
- Settings is a small ⚙ button. On desktop it sits in the Title part of the side menu (next to Search), so the menu keeps five parts: Title, Today, Calendar, Notes, Backlog. On a phone it moved to the top header, and the bottom bar is Today, Calendar, + New task, Backlog, Notes.
- Guides (Settings › Help and the website) are updated.
Fixed
- Opening an installed-app shortcut such as New task while your sign-in was being renewed could land on the home page instead of the shortcut's target.
- The graph opens with all your notes again in big vaults instead of only the open note's folder.
Upgrading
- No server change is needed for Notes. Deploy as usual (
docker compose up -d --build) to get the sign-in fix. - Android: install this APK over 1.8.0. Your notes, habits, backlog, pictures, sign-in and widgets stay.
- Your notes, folders and sync data are unchanged.
Known limits
- The graph and the List | Graph switch are desktop and tablet only; phones get the column and the Related sheet.
- This APK hasn't been tried on a real phone yet. It builds and its tests pass.
Checks
Lint, 1,503 unit tests, 23 helper tests, 822 browser checks, the 103-check UX suite with its accessibility scans, the two-device sync test (32 checks), the offline/installable app test, and the Android build with its Kotlin tests all pass.
Details and screenshots: cycle 12.
Daymark v1.8.0
Daymark 1.8.0: nested folders, related notes and a knowledge graph
New
- Nested folders. Notes now live in a folder tree like Obsidian's: folders inside folders, empty folders, New folder, Rename, Move and Delete (deleting a folder moves its notes to the parent; it never deletes notes). Move a note or a whole folder from the note's folder line, from the folder's menu, or by drag and drop on desktop. Moving or renaming a folder onto an existing one merges them after you confirm. Your existing folders simply become top-level folders. The tree can be minimized to a thin strip, and on narrow windows it opens as a drawer.
- Related notes. Beside the note you're reading, Daymark suggests notes that look related and shows the words they share ("shares: Java, stream"). Link writes a
[[note]]line under a## Relatedheading at the end of the note, as one Undo step; the other note shows it as a backlink. Not related hides a suggestion for good (and syncs to your other devices); Hidden suggestions brings it back. Suggestions are worked out on your device from your own text, in English and Vietnamese. Nothing is sent anywhere. The panel starts minimized when the window is too narrow to keep the editor comfortable. On a phone it's a sheet opened from the note's Related button. - Knowledge graph (desktop). Switch Notes from List to Graph to see your notes as dots joined by lines: solid for links, faint for shared tags, dashed amber for suggestions you can accept or dismiss. Filter by folder (tick a folder to include its subfolders, plus Root (no folder)), by tag, with toggles for suggestions, tag lines and orphans, and a Local view of one note and its neighbours. Search highlights matches. There is also a keyboard-friendly List view of the same data. It stays responsive with 1,000 notes.
- Guides (Settings › Help and the website) cover folders, Related and the graph.
Fixed
- A folder rename or move on one device no longer duplicates a note that you edited on another device in the meantime; edits and folder changes now merge field by field.
- New notes made while "All notes" is selected go to the top level instead of the alphabetically first folder.
Upgrading
- Server first: pull and rebuild (
docker compose up -d --build). Folder and dismissed-suggestion sync needs the 1.8.0 server. - Android: install this APK over 1.7.0. Your notes, habits, backlog, pictures, sign-in and widgets stay.
- Devices still on 1.7.0 keep working: they show a nested folder as one flat folder name (for example
Tech/Java) and never lose notes.
Known limits
- The graph is desktop only; phones get the Related sheet.
- Related suggestions look at words, not meaning, so they can miss a link between notes that use different words. Very common Vietnamese words that are also real words (for example "den", "cho") are ignored in matching.
- If two devices edit the same note's text at the same time (even while one renames its folder), you still get a "conflict copy" of the text, as before.
- This APK hasn't been tried on a real phone yet. It builds and its tests pass.
Checks
Lint, 1,389 unit and server tests, 23 helper tests, 595 browser checks, the 93-check UX suite with its accessibility scans, the two-device sync test (33 checks, including a folder rename racing an edit on another device), the offline/installable app test, and the Android build with its Kotlin tests all pass. CI (verify + android) is green on this commit.
Details and screenshots: cycle 11.
Daymark v1.7.0
Daymark 1.7.0: Backlog, a side menu, move to section and built-in guides
New
- Backlog. A place for ideas that aren't ready for a day. Backlog tasks never appear on Today or the Calendar, never age, never trigger the delay warning and never count in your stats. Give each an optional category label; when you pick it into a day it goes into the section with that name, or a new section is created. Move to backlog in a task's menu parks an open task again. Backlog syncs between your devices and is included in backups (a ZIP export adds
Backlog.md). - Side menu on desktop. The top bar and page title are gone; a rail with six equal parts (Title, Today, Calendar, Notes, Backlog, Settings) frees the full height for your content, which matters most in Notes. The Title part holds sync status, + New task and search. Choose left or right in Settings › Appearance, and use Minimize menu to shrink it to icons (remembered on this device). Notes focus mode hides it.
- Move to section. The task menu can move a task to another section of the same day, or to a new one. Undo is offered.
- Phones. A Backlog tab joins the bottom bar, and the New task sheet can save to the Backlog.
- Guides. Settings › Help has 13 topics, each with a Web and a Mobile part, and works offline. The same guide is on the website.
- Website. Click any screenshot to see it full size; arrows or swipe browse, Esc closes.
Fixed
- Tasks parked in the Backlog stay closed on earlier days instead of showing as completed, and stale offline devices can't pull a parked task back.
Upgrading
- Server first: pull and rebuild (
docker compose up -d --build). Backlog sync needs the 1.7.0 server. - Android: install this APK over 1.6.0. Your notes, habits, pictures, sign-in and widgets stay.
- Devices still on 1.6.0 keep syncing tasks, notes and habits but never see the Backlog; a task moved to the Backlog looks removed from its day to them.
Known limits
- If two devices pick the same Backlog item onto different days before they sync, both days keep a copy (they behave like carried copies); nothing is deleted.
- Pinch-zoom in the screenshot viewer relies on the browser's own gestures and hasn't been tried on a physical phone, and this APK hasn't been tried on a real phone yet. It builds and its tests pass.
- Pictures and Backlog items are never removed automatically.
Checks
Lint, 1,104 unit and server tests, 23 helper tests, 466 browser checks, the 92-check UX suite, the two-device sync test (including two devices picking the same Backlog item), the offline/installable app test, and the Android build with its 44 Kotlin tests all pass. CI is green on this commit.
Details and screenshots: cycle 10 and cycle 10.1.
Daymark v1.6.0
Daymark 1.6.0: a rich Notes editor, pictures, and menus that always fit
New
- Rich editor in Notes. Write like in Notion or Google Docs: headings, bold and italic, bullet, numbered and checkbox lists, quotes, Obsidian callouts, colour-highlighted code blocks and tables, from the toolbar or with Markdown shortcuts as you type. Notes are still saved as plain Markdown; the Markdown button shows the raw text. Notes you only open and close are never rewritten.
- Pictures. Paste a screenshot, drop or pick a file, or add a link to an online image. Saved pictures are shrunk (longest side 1600 px) and sync to your other devices; a picture that hasn't arrived yet shows "Picture not synced yet". Pictures are included in backups, and a ZIP export opens in Obsidian with the pictures in
Notes/_assets/. - Mermaid diagrams. A
```mermaidblock draws the diagram in place; click it to edit the code. Mistakes show the error instead of a blank box. - Paste from ChatGPT, Claude, Gemini and web pages keeps headings, lists, tables, code blocks (with their language), links, quotes and maths, and drops fonts, colours, ads and tracking images. Copying from a note gives formatted text and Markdown.
[[link autocomplete. Type[[to pick a note; if nothing matches, Create note "…" makes it and links it.- Settings › Storage shows how much space pictures use and offers Remove unused pictures (never automatic).
Fixed
- Menus always fit. On phones, task and status menus open as a sheet above the tab bar, so nothing is cut off near the bottom of the screen, and tapping outside never ticks the task underneath. On desktop, menus flip up near the bottom of the window and always draw on top.
Upgrading
- Server first: pull and rebuild (
docker compose up -d --build). Pictures need the 1.6.0 server. - Android: install this APK over 1.5.0. Your notes, habits, sign-in and widgets stay.
- Devices on 1.6.0 sync pictures. Older apps keep syncing notes; they show picture links as text and never delete pictures.
- Today's day notes are unchanged; the rich editor is in Notes.
Known limits
- Pictures are never removed automatically; use Settings › Storage › Remove unused pictures.
- Online images pasted from AI chats stay links and may stop showing if the link expires.
- This APK hasn't been tried on a real phone yet. It builds and its tests pass; please check that a picture pasted on your computer shows up in the Android app.
Checks
Lint, 936 unit and server tests, 126/126 browser checks (new ones for menus, the editor, pictures, paste, Mermaid and links), the 90/90 UX suite, the two-device sync test (a picture pasted on the laptop shows on the phone), the offline/installable app test, and the Android build with its Kotlin tests all pass. CI (verify + android) is green on this commit.
Details and screenshots: docs/releases/cycle-9.
Daymark v1.5.0
Daymark 1.5.0: tidier carried tasks, a website, and a license
New
- Finishing a carried task tidies up behind it. When you tick a task that was carried over several days, its open copies on the earlier days are closed and show "Done later, today". Those days don't count it as open or as done, so their numbers stay honest. Unticking it (or reopening it from the Calendar) brings the copies back. The task's history notes how long it was carried ("carried from Mon 20 Oct, done after 5 days").
- The Today tab always shows today. After opening a past day from the Calendar, tapping Today goes straight back to today, on desktop and phone. "Open this day" still opens the day you picked.
- Website: dngioidev.github.io/daymark introduces Daymark with screenshots, the license and a download button for the latest APK. It updates itself with every release.
- License: Daymark is now source-available under the PolyForm Noncommercial License 1.0.0: free for personal, study, research, hobby, charity, school and government use; commercial use needs permission.
Fixed
- With a background photo, a task's "…" menu was hidden behind the section below it. It now opens on top.
Upgrading
- Server: pull and rebuild (
docker compose up -d --build). Nothing to migrate. - Android: install this APK over 1.4.0. Your notes, sign-in, habits and widgets stay.
- Older apps keep syncing. A task closed as "done later" shows as done on earlier days in older apps.
Known limits
- This APK hasn't been tried on a real phone yet. It builds and its Kotlin tests pass.
Checks
Lint, 654 unit and server tests, 107/107 browser checks (7 new), the 90/90 UX suite, the two-device sync test, the offline/installable app test, the Android build with its Kotlin tests (43), helper tests and AI-config validation all pass. CI (verify + android) is green on this commit.