Skip to content

Commit 038a628

Browse files
committed
release 4.3.2
1 parent f2eb40c commit 038a628

18 files changed

Lines changed: 93 additions & 87 deletions

docs/releases/4.3.2.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# TaskNotes 4.3.2
2+
3+
## Added
4+
5+
- (#1520) Tag and Context fields in Edit Task modal now show all available suggestions immediately on focus
6+
- Previously required typing at least one character before suggestions appeared
7+
- Already-selected values are excluded from the suggestion list
8+
- Thanks to @Glint-Eye for the suggestion
9+
10+
- (#1506) Added setting to configure the default color for new timeblocks
11+
- New color picker in Settings > Features > Timeblocking
12+
- Previously hardcoded to indigo; now user-configurable
13+
- Thanks to @phillipadsmith for the suggestion
14+
15+
## Fixed
16+
17+
- Fixed [mdbase-spec](https://mdbase.dev) type definition generation not triggering when settings change
18+
19+
- (#1456) Fixed inline tasks jumping visually when marked as completed
20+
- Thanks to @3zra47 for reporting
21+
22+
- (#1364) Fixed auto-stop time tracking not triggering when completing recurring task instances
23+
- Thanks to @slipstyle for reporting
24+
25+
- (#1465) Fixed all-day events synced to Google Calendar receiving wrong notification time
26+
- All-day events now use Google Calendar's configured all-day notification defaults instead of a minutes-based reminder
27+
- Thanks to @Jomo94 for reporting
28+
29+
- (#1470) Fixed cursor showing as default instead of pointer on interactive elements
30+
- Thanks to @TheFrostedDev for reporting
31+
32+
- (#1491) Fixed boolean property values being quoted as strings in Bases filter generation
33+
- When using a boolean property (e.g. `tasknote: true`) for task identification, the filter now correctly handles the value
34+
- Thanks to @denisgorod for reporting
35+
36+
- (#1494) Fixed Kanban swimlane resetting to "None" on initial load and after navigation
37+
- Thanks to @tnguyen2018 for reporting
38+
39+
- (#1555) Fixed "Folder already exists" error when creating tasks or converting inline tasks
40+
- Thanks to @jkune5 for reporting
41+
42+
- (#1532) Fixed expanded task modal buttons being cut off when content exceeds viewport height
43+
- Thanks to @willfanguy for reporting
44+
45+
- (#1542) Fixed declined and cancelled events from ICS calendar subscriptions appearing in calendar view
46+
- Thanks to @karenchoe428 for reporting
47+
48+
- (#1556) Fixed completion-based recurring tasks not rescheduling when the recurrence interval is large
49+
- Thanks to @kazerniel for reporting
50+
51+
- (#1492) Fixed hardcoded "open" status leaking into filenames, recurring task displays, and parsing fallbacks
52+
- Users with custom default statuses (e.g. "inbox") no longer see "open" where their configured default should appear
53+
- Recurring tasks now show their actual configured status instead of always displaying "open" when not completed
54+
- Thanks to @macdrifter for reporting
55+
56+
- (#1501) Fixed Google/Microsoft Calendar event colors not showing in agenda/list view
57+
- Per-event and calendar-level colors now display correctly in the list view, matching grid view behavior
58+
- Added today indicator highlighting to list view day headers
59+
- Thanks to @Robubble for the suggestion

docs/releases/unreleased.md

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -23,61 +23,3 @@ Example:
2323
```
2424
2525
-->
26-
27-
## Added
28-
29-
- (#1520) Tag and Context fields in Edit Task modal now show all available suggestions immediately on focus
30-
- Previously required typing at least one character before suggestions appeared
31-
- Already-selected values are excluded from the suggestion list
32-
- Thanks to @Glint-Eye for the suggestion
33-
34-
- (#1506) Added setting to configure the default color for new timeblocks
35-
- New color picker in Settings > Features > Timeblocking
36-
- Previously hardcoded to indigo (#6366f1); now user-configurable
37-
- Thanks to @phillipadsmith for the suggestion
38-
39-
## Fixed
40-
41-
- (#1456) Fixed inline tasks jumping visually when marked as completed
42-
- Removed scale transformation from the entrance animation to prevent distracting movement on status change
43-
- Thanks to @3zra47 for reporting
44-
45-
- (#1364) Fixed auto-stop time tracking not triggering when completing recurring task instances
46-
- The auto-stop logic now detects when `complete_instances` grows, not just status changes
47-
48-
- (#1465) Fixed all-day events synced to Google Calendar receiving wrong notification time
49-
- All-day events now use Google Calendar's configured all-day notification defaults instead of a minutes-based reminder
50-
51-
- (#1470) Fixed cursor showing as default instead of pointer on interactive elements
52-
- Added `pointer` fallback to all 91 `var(--cursor)` declarations across 19 CSS files
53-
54-
- (#1491) Fixed boolean property values being quoted as strings in Bases filter generation
55-
- When using a boolean property (e.g. `tasknote: true`) for task identification, the filter now emits unquoted booleans
56-
- Thanks to @denisgorod for reporting
57-
58-
- (#1494) Fixed Kanban swimlane resetting to "None" on initial load and after navigation
59-
- Formula-based swimlane properties (e.g. dueDateCategory) were not computed before the first render
60-
- Added formula computation to KanbanView, matching the existing pattern in TaskListView
61-
- Thanks to @tnguyen2018 for reporting
62-
63-
- Fixed [mdbase-spec](https://mdbase.dev) type definition generation not triggering when settings change
64-
- Improved generated `_types/task.md` to use proper multi-line YAML format with field descriptions
65-
66-
- (#1555) Fixed "Folder already exists" error when creating tasks or converting inline tasks
67-
- Used adapter filesystem check instead of in-memory cache for folder existence
68-
- Thanks to @jkune5 for reporting
69-
70-
- (#1532) Fixed expanded task modal buttons being cut off when content exceeds viewport height
71-
- Thanks to @willfanguy for reporting
72-
73-
- (#1542) Fixed declined and cancelled events from ICS calendar subscriptions appearing in calendar view
74-
- Events with `STATUS:CANCELLED` or an attendee `PARTSTAT=DECLINED` are now filtered out
75-
76-
- (#1556) Fixed completion-based recurring tasks not rescheduling when INTERVAL exceeds 30 (DAILY) or ~12 (WEEKLY)
77-
- The look-ahead window for finding the next occurrence now scales with the INTERVAL value
78-
- Thanks to @kazerniel for reporting
79-
80-
- (#1501) Fixed Google/Microsoft Calendar event colors not showing in agenda/list view
81-
- Per-event and calendar-level colors now display correctly in the list view, matching grid view behavior
82-
- Added today indicator highlighting to list view day headers, respecting the "Show Today Highlight" setting
83-
- Thanks to @Robubble for the suggestion

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "tasknotes",
33
"name": "TaskNotes",
4-
"version": "4.3.1",
4+
"version": "4.3.2",
55
"minAppVersion": "1.10.1",
66
"description": "Note-based task management with calendar, pomodoro and time-tracking integration.",
77
"author": "Callum Alpass",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tasknotes",
3-
"version": "4.3.1",
3+
"version": "4.3.2",
44
"description": "Note-based task management with calendar, pomodoro and time-tracking integration.",
55
"main": "main.js",
66
"scripts": {

src/bases/helpers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ function createTaskInfoFromProperties(
128128
basesItem.name ||
129129
basesItem.path?.split("/").pop()?.replace(".md", "") ||
130130
"Untitled",
131-
status: props.status || "open",
131+
status: props.status || plugin?.settings?.defaultTaskStatus || "open",
132132
priority: props.priority || "normal",
133133
path: basesItem.path || "",
134134
archived: props.archived || false,

src/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ export default class TaskNotesPlugin extends Plugin {
320320

321321
// Initialize only essential services that are needed for app registration
322322
this.fieldMapper = new FieldMapper(this.settings.fieldMapping);
323-
this.statusManager = new StatusManager(this.settings.customStatuses);
323+
this.statusManager = new StatusManager(this.settings.customStatuses, this.settings.defaultTaskStatus);
324324
this.priorityManager = new PriorityManager(this.settings.customPriorities);
325325

326326
// Initialize performance optimization utilities (lightweight)

src/modals/TaskEditModal.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,8 @@ export class TaskEditModal extends TaskModal {
295295
this.task.path,
296296
file,
297297
this.plugin.fieldMapper,
298-
this.plugin.settings.storeTitleInFilename
298+
this.plugin.settings.storeTitleInFilename,
299+
this.plugin.settings.defaultTaskStatus
299300
);
300301

301302
if (freshTaskInfo) {

src/services/FilterService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -915,7 +915,7 @@ export class FilterService extends EventEmitter {
915915

916916
// Handle special case for status.isCompleted
917917
if (property === "status.isCompleted") {
918-
const effectiveStatus = getEffectiveTaskStatus(task, targetDate || new Date());
918+
const effectiveStatus = getEffectiveTaskStatus(task, targetDate || new Date(), this.statusManager.getCompletedStatuses()[0]);
919919
taskValue = this.statusManager.isCompletedStatus(effectiveStatus);
920920
}
921921

src/services/HTTPAPIService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export class HTTPAPIService implements IWebhookNotifier {
4848
plugin.settings.nlpTriggers,
4949
plugin.settings.userFields
5050
);
51-
const statusManager = new StatusManager(plugin.settings.customStatuses);
51+
const statusManager = new StatusManager(plugin.settings.customStatuses, plugin.settings.defaultTaskStatus);
5252

5353
// Initialize controllers
5454
this.webhookController = new WebhookController(plugin);

src/services/StatusManager.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { StatusConfig } from "../types";
44
* Service for managing custom task statuses
55
*/
66
export class StatusManager {
7-
constructor(private statuses: StatusConfig[]) {}
7+
constructor(private statuses: StatusConfig[], private defaultStatus: string = "open") {}
88

99
/**
1010
* Get next status in cycle from current status
@@ -15,7 +15,7 @@ export class StatusManager {
1515

1616
if (currentIndex === -1) {
1717
// Current status not found, return first status
18-
return sortedStatuses[0]?.value || "open";
18+
return sortedStatuses[0]?.value || this.defaultStatus;
1919
}
2020

2121
// Get next status, cycling to first if at end
@@ -32,7 +32,7 @@ export class StatusManager {
3232

3333
if (currentIndex === -1) {
3434
// Current status not found, return last status
35-
return sortedStatuses[sortedStatuses.length - 1]?.value || "open";
35+
return sortedStatuses[sortedStatuses.length - 1]?.value || this.defaultStatus;
3636
}
3737

3838
// Get previous status, cycling to last if at beginning

0 commit comments

Comments
 (0)