mirror of
https://github.com/callumalpass/tasknotes.git
synced 2026-07-22 12:50:26 +00:00
release 4.10.1
This commit is contained in:
parent
19af99278d
commit
bf1428c959
9 changed files with 56 additions and 27 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# TaskNotes Privacy Policy
|
||||
|
||||
Last updated: February 21, 2026
|
||||
Last updated: June 4, 2026
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -17,11 +17,12 @@ Plugin settings are stored in Obsidian's local plugin configuration.
|
|||
|
||||
## Optional Network Features
|
||||
|
||||
TaskNotes is local-first. Network requests occur only when you enable features that require them.
|
||||
TaskNotes is local-first. Network requests occur only for enabled features that require them.
|
||||
Some enabled integrations perform periodic background refreshes, such as calendar provider sync and ICS subscription updates.
|
||||
|
||||
Optional network features:
|
||||
|
||||
- Release checks: when enabled, TaskNotes checks GitHub once on startup for newer compatible TaskNotes releases. This is enabled by default and can be disabled in TaskNotes settings.
|
||||
- OAuth calendar integration (Google/Microsoft): fetches and updates calendar events through provider APIs.
|
||||
- ICS subscriptions: fetches events from configured ICS URLs.
|
||||
- Webhooks: sends event payloads to webhook endpoints you configure.
|
||||
|
|
@ -37,6 +38,7 @@ Optional network features:
|
|||
|
||||
- Google APIs: https://policies.google.com/privacy
|
||||
- Microsoft APIs: https://privacy.microsoft.com/privacystatement
|
||||
- GitHub: https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement
|
||||
- Any ICS host or webhook endpoint you configure
|
||||
|
||||
## What TaskNotes Does Not Do
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ Welcome to the TaskNotes release notes. Here you can find detailed information a
|
|||
|
||||
### Version 4.x (Current)
|
||||
|
||||
- [4.10.1](releases/4.10.1.md)
|
||||
- [4.10.0](releases/4.10.0.md)
|
||||
- [4.9.2](releases/4.9.2.md)
|
||||
- [4.9.1](releases/4.9.1.md)
|
||||
|
|
|
|||
18
docs/releases/4.10.1.md
Normal file
18
docs/releases/4.10.1.md
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# TaskNotes 4.10.1
|
||||
|
||||
## Added
|
||||
|
||||
- Added a startup check for new compatible TaskNotes releases. When a new release is available, TaskNotes shows a notice that opens the TaskNotes entry in Obsidian's Community Plugins browser.
|
||||
- (#1989) Added a command-palette action plus runtime and HTTP API actions for updating configured default `.base` files from the current TaskNotes templates. Thanks to @businessBoris for the request.
|
||||
- (#1115) Added API and MCP support for creating materialized occurrence notes from recurring tasks, and made headless recurring-instance completion respect occurrence notes when the parent uses Create next after completion. Thanks to @gsssr for the original request, @slipstyle for the follow-up, and @martin-forge for identifying the API/MCP gap.
|
||||
|
||||
## Fixed
|
||||
|
||||
- (#1985) Fixed embedded Calendar and Agenda time-grid views drifting out of alignment inside callouts and Reading mode. Thanks to @matesvecenik for reporting and sharing screenshots.
|
||||
- (#1986) Fixed the local HTTP API rejecting requests from the TaskNotes browser extension's Chrome extension origin. Thanks to @n1njaznutz for reporting this.
|
||||
- (#1980) Added mobile bottom spacing to Agenda Calendar views so the last visible tasks can scroll above Obsidian's bottom navigation bar. Thanks to @Jomo94 for reporting and sharing the screenshot.
|
||||
- (#1984) Fixed mobile task link overlays hiding configured inline task card properties such as scheduled date, due date, contexts, and projects. Thanks to @stil-sudo for reporting.
|
||||
- (#1979) Kept the left-positioned subtask chevron from overlapping the task status control on mobile task cards. Thanks to @Jomo94 for reporting and sharing the screenshot.
|
||||
- (#1903) Reduced the Edit Task modal's mobile action-button footer so Open note, Archive, Delete, Save, and Cancel take two rows instead of three on iPhone-sized screens. Thanks to @3zra47 for the original report and @krzyfu for the follow-up about the button area crowding the editor.
|
||||
- (#1982) Preserved scroll position in TaskNotes Bases after task edits and data refreshes, avoiding jumps back to the top on mobile. Thanks to @3zra47 for reporting.
|
||||
- (#1978) Restored Obsidian editor shortcuts such as insert link, headings, and list toggles inside the Edit Task modal's Details editor. Thanks to @krzyfu for reporting this.
|
||||
|
|
@ -31,21 +31,3 @@ When a change has user-facing documentation, include a canonical tasknotes.dev l
|
|||
```
|
||||
|
||||
-->
|
||||
|
||||
## Added
|
||||
|
||||
- Added an enabled-by-default startup check for new compatible TaskNotes releases. When a new release is available, TaskNotes shows a notice that opens the TaskNotes entry in Obsidian's Community Plugins browser.
|
||||
- Added translations for the new startup release-check setting and update notice.
|
||||
- (#1989) Added a command-palette action plus runtime and HTTP API actions for updating configured default `.base` files from the current TaskNotes templates. Thanks to @businessBoris for the request.
|
||||
- (#1115) Added API and MCP support for creating materialized occurrence notes from recurring tasks, and made headless recurring-instance completion respect occurrence notes when the parent uses Create next after completion. Thanks to @martin-forge for identifying the API/MCP gap.
|
||||
|
||||
## Fixed
|
||||
|
||||
- (#1985) Fixed embedded Calendar and Agenda time-grid views drifting out of alignment inside callouts and Reading mode. Thanks to @matesvecenik for reporting and sharing screenshots.
|
||||
- (#1986) Fixed the local HTTP API rejecting requests from the TaskNotes browser extension's Chrome extension origin. Thanks to @n1njaznutz for reporting this.
|
||||
- (#1980) Added mobile bottom spacing to Agenda Calendar views so the last visible tasks can scroll above Obsidian's bottom navigation bar. Thanks to @Jomo94 for reporting and sharing the screenshot.
|
||||
- (#1984) Fixed mobile task link overlays hiding configured inline task card properties such as scheduled date, due date, contexts, and projects. Thanks to @stil-sudo for reporting.
|
||||
- (#1979) Kept the left-positioned subtask chevron from overlapping the task status control on mobile task cards. Thanks to @Jomo94 for reporting and sharing the screenshot.
|
||||
- (#1903) Reduced the Edit Task modal's mobile action-button footer so Open note, Archive, Delete, Save, and Cancel take two rows instead of three on iPhone-sized screens. Thanks to @3zra47 for the original report and @krzyfu for the follow-up about the button area crowding the editor.
|
||||
- (#1982) Preserved scroll position in TaskNotes Bases after task edits and data refreshes, avoiding jumps back to the top on mobile. Thanks to @3zra47 for reporting.
|
||||
- (#1978) Restored Obsidian editor shortcuts such as insert link, headings, and list toggles inside the Edit Task modal's Details editor. Thanks to @krzyfu for reporting this.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "tasknotes",
|
||||
"name": "TaskNotes",
|
||||
"version": "4.10.0",
|
||||
"version": "4.10.1",
|
||||
"minAppVersion": "1.12.2",
|
||||
"description": "Note-based task management with calendar, pomodoro and time-tracking integration.",
|
||||
"author": "Callum Alpass",
|
||||
|
|
|
|||
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "tasknotes",
|
||||
"version": "4.10.0",
|
||||
"version": "4.10.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "tasknotes",
|
||||
"version": "4.10.0",
|
||||
"version": "4.10.1",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@codemirror/view": "^6.38.6",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "tasknotes",
|
||||
"version": "4.10.0",
|
||||
"version": "4.10.1",
|
||||
"description": "Note-based task management with calendar, pomodoro and time-tracking integration.",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
jest.mock("../../../src/utils/helpers", () => ({
|
||||
...jest.requireActual("../../../src/utils/helpers"),
|
||||
generateRecurringInstances: jest.fn(),
|
||||
}));
|
||||
|
||||
import {
|
||||
generateCalendarEvents,
|
||||
getTargetDateForEvent,
|
||||
|
|
@ -5,8 +10,12 @@ import {
|
|||
} from "../../../src/bases/calendar-core";
|
||||
import type TaskNotesPlugin from "../../../src/main";
|
||||
import { formatDateForStorage } from "../../../src/utils/dateUtils";
|
||||
import { generateRecurringInstances } from "../../../src/utils/helpers";
|
||||
import { TaskFactory } from "../../helpers/mock-factories";
|
||||
|
||||
const mockedGenerateRecurringInstances =
|
||||
generateRecurringInstances as jest.MockedFunction<typeof generateRecurringInstances>;
|
||||
|
||||
function createPlugin(): TaskNotesPlugin {
|
||||
return {
|
||||
priorityManager: {
|
||||
|
|
@ -22,6 +31,10 @@ function localDate(year: number, monthIndex: number, day: number): Date {
|
|||
return new Date(year, monthIndex, day);
|
||||
}
|
||||
|
||||
function localNoonDate(year: number, monthIndex: number, day: number): Date {
|
||||
return new Date(year, monthIndex, day, 12);
|
||||
}
|
||||
|
||||
function virtualOccurrenceDates(events: CalendarEvent[]): string[] {
|
||||
return events
|
||||
.filter(
|
||||
|
|
@ -37,8 +50,20 @@ function virtualOccurrenceDates(events: CalendarEvent[]): string[] {
|
|||
|
||||
describe("calendar materialized occurrences", () => {
|
||||
const plugin = createPlugin();
|
||||
const start = localDate(2026, 5, 1);
|
||||
const end = localDate(2026, 5, 4);
|
||||
const start = localNoonDate(2026, 5, 1);
|
||||
const end = localNoonDate(2026, 5, 4);
|
||||
|
||||
beforeEach(() => {
|
||||
mockedGenerateRecurringInstances.mockReturnValue([
|
||||
localNoonDate(2026, 5, 1),
|
||||
localNoonDate(2026, 5, 2),
|
||||
localNoonDate(2026, 5, 3),
|
||||
]);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
mockedGenerateRecurringInstances.mockReset();
|
||||
});
|
||||
|
||||
it("coalesces virtual recurrence events when a materialized occurrence exists", async () => {
|
||||
const parent = TaskFactory.createRecurringTask("FREQ=DAILY;INTERVAL=1", {
|
||||
|
|
|
|||
|
|
@ -25,5 +25,6 @@
|
|||
"4.9.0": "1.12.2",
|
||||
"4.9.1": "1.12.2",
|
||||
"4.9.2": "1.12.2",
|
||||
"4.10.0": "1.12.2"
|
||||
"4.10.0": "1.12.2",
|
||||
"4.10.1": "1.12.2"
|
||||
}
|
||||
Loading…
Reference in a new issue