Bug Description
Two related problems in tasknotesKanban Bases views, both hit while building a working kanban
board (4.11.1, latest release). Filing together since both are about column presentation
(title text, existence, order) rather than the population failure covered in a separate issue
(will link once both are filed).
1. Column header renders a raw stringified status object instead of a label.
This only surfaces once grouping by task.status — currently the only property reference that
makes the board populate at all (see the linked "zero cards" issue). With
groupBy.property: task.status, the column header renders as raw JSON, e.g.:
{"icon":"lucide-file-question","color":"#...","value":"open","label":"Open", ...}
instead of the clean label "Open". Root cause (read directly from source,
src/bases/basesValueConversion.ts + kanbanGrouping.ts): task.status resolves to Bases' rich
status object (icon/color/value/label), not a plain string. The kanban column-title code
stringifies that whole object into the header text before running TaskNotes' own
status-value-canonicalization/label-lookup step, so canonicalization never matches the resulting
JSON blob and silently falls back to the raw text. Tasks sharing a status still land in the same
column only because they produce byte-identical blobs — this would visibly break into multiple
ugly, non-merged columns for the same status if the object's key order or contents ever varied.
Tried note.status and bare status as alternatives to get a clean label without this bug — both
regress to the zero-cards failure, so task.status is currently the only value that makes the
view work at all, making this cosmetic bug unavoidable for any functioning kanban board today.
2. pinnedColumns and columnOrder have no effect.
pinnedColumns — intended to force specified columns to always render, even with no
matching tasks (needed for e.g. a 7-day-of-week board where only some days currently have
tasks). Set as pinnedColumns: "Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday"
grouped by a formula.weekDay value (also tried grouped by task.status to force
Open/In-progress/Done/Cancelled columns). In every case, only columns with at least one matching
task render — empty pinned columns never appear. Confirmed not an embedding-timing issue: same
result whether the .base file is embedded in a note or opened directly as its own tab. Read
the installed main.js: the read/normalize/pass-through wiring
(this.config.get("pinnedColumns") → normalize → addPinnedColumnGroups) looks structurally
correct end-to-end, yet has no observable effect. No GUI settings panel exposing "Pinned
Columns" was found either — this was only reachable via direct .base YAML editing.
columnOrder — tried as a narrower alternative (reorder existing populated columns rather
than create empty ones): columnOrder: '{"formula.weekDay":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]}'.
Also has zero effect — populated columns (e.g. Friday, Saturday, Sunday, Thursday) consistently
render in plain alphabetical order regardless of the specified order. Verified the JSON wasn't
silently stripped by any Bases GUI resave — it's present in the file exactly as written, just
ignored at render time.
Net effect: a kanban view grouped by a derived value (e.g. day of week) can only ever show columns
for values that currently have at least one task, in alphabetical order — with no way to force
consistent column existence or ordering via any documented or discoverable config option.
Steps to Reproduce
For the column-header bug:
- Group a
tasknotesKanban view by task.status (currently required for the view to populate
at all — see linked issue).
- Add at least one task note with
status: open (or any status value).
- Open the kanban view. Observe the column header renders raw JSON instead of "Open".
For pinnedColumns/columnOrder:
- Create a
tasknotesKanban view grouped by a property/formula where only some possible values
are currently present in the data (e.g. a weekDay formula for a week where only 3 of 7
weekdays have tasks).
- Set
pinnedColumns (comma-separated string) to the full list of all possible values. Restart
Obsidian. Observe: only the 3 populated day-columns appear; the other 4 don't.
- Remove
pinnedColumns, instead set columnOrder (JSON-string form, see below) to the full
Monday→Sunday order. Restart Obsidian. Observe: the 3 populated columns still render in
alphabetical order (e.g. Friday, Saturday, Sunday), not the specified order.
TaskNotes Debug Info
SYSTEM INFO:
Obsidian version: 1.12.7
Installer version: 1.12.7
Operating system: #28~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 15:50:57 UTC 2 7.0.0-28-generic
Login status: logged in
Language: en-GB
Catalyst license: insider
Insider build toggle: off
Live preview: on
Base theme: dark
Community theme: Baseline 3.2.11
Snippets enabled: 15
Restricted mode: off
Plugins installed: 28
Plugins enabled: 27
1: Dynamic Embed v1.1.0
2: Dataview v0.5.68
3: Multi-Column Markdown v0.9.1
4: QuickAdd v2.12.3
5: Style Settings v1.0.9
6: Meta Bind v1.4.15
7: Iconize v2.14.7
8: Checklist v2.2.14
9: Journals v2.1.10
10: Templater v2.20.6
11: Advanced Canvas v6.5.0
12: Auto Note Mover v1.2.0
13: Better Word Count v0.10.1
14: Book Search v0.7.5
15: Callout Manager v1.1.1
16: Editor Syntax Highlight v0.1.3
17: Image Converter v1.4.4
18: Note Refactor v1.8.2
19: Omnisearch v1.29.3
20: Paste URL into selection v1.11.4
21: Plugin Update Tracker v1.7.0
22: Supercharged Links v0.13.10
23: Tag Wrangler v0.6.4
24: Update time on edit v2.4.0
25: Natural Language Dates v0.6.2
26: Notebook Navigator v3.2.4
27: TaskNotes v4.11.1
RECOMMENDATIONS:
Custom theme and snippets: for cosmetic issues, please first try updating your theme and disabling your snippets. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets.
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.
Affected Task Frontmatter
status: open
tags: [task]
due: 2026-07-28
(any task note with a `status` and a date field that maps to the grouped formula reproduces this)
Relevant Bases File Content
- type: tasknotesKanban
name: Week View
groupBy:
property: formula.weekDay
direction: ASC
config:
columnWidth: 280
hideEmptyColumns: false
columnOrder: '{"formula.weekDay":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]}'
(`pinnedColumns` was tested as `pinnedColumns: "Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday"` in an earlier version of this same view, in place of `columnOrder`.)
Relevant Settings or Customizations
Default fieldMapping; no custom status labels/icons beyond TaskNotes' stock status definitions.
Console Errors or Logs
None observed in either case.
Screenshots or Screen Recording
No response
Bug Description
Two related problems in
tasknotesKanbanBases views, both hit while building a working kanbanboard (4.11.1, latest release). Filing together since both are about column presentation
(title text, existence, order) rather than the population failure covered in a separate issue
(will link once both are filed).
1. Column header renders a raw stringified status object instead of a label.
This only surfaces once grouping by
task.status— currently the only property reference thatmakes the board populate at all (see the linked "zero cards" issue). With
groupBy.property: task.status, the column header renders as raw JSON, e.g.:instead of the clean label "Open". Root cause (read directly from source,
src/bases/basesValueConversion.ts+kanbanGrouping.ts):task.statusresolves to Bases' richstatus object (icon/color/value/label), not a plain string. The kanban column-title code
stringifies that whole object into the header text before running TaskNotes' own
status-value-canonicalization/label-lookup step, so canonicalization never matches the resulting
JSON blob and silently falls back to the raw text. Tasks sharing a status still land in the same
column only because they produce byte-identical blobs — this would visibly break into multiple
ugly, non-merged columns for the same status if the object's key order or contents ever varied.
Tried
note.statusand barestatusas alternatives to get a clean label without this bug — bothregress to the zero-cards failure, so
task.statusis currently the only value that makes theview work at all, making this cosmetic bug unavoidable for any functioning kanban board today.
2.
pinnedColumnsandcolumnOrderhave no effect.pinnedColumns— intended to force specified columns to always render, even with nomatching tasks (needed for e.g. a 7-day-of-week board where only some days currently have
tasks). Set as
pinnedColumns: "Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday"grouped by a
formula.weekDayvalue (also tried grouped bytask.statusto forceOpen/In-progress/Done/Cancelled columns). In every case, only columns with at least one matching
task render — empty pinned columns never appear. Confirmed not an embedding-timing issue: same
result whether the
.basefile is embedded in a note or opened directly as its own tab. Readthe installed
main.js: the read/normalize/pass-through wiring(
this.config.get("pinnedColumns")→ normalize →addPinnedColumnGroups) looks structurallycorrect end-to-end, yet has no observable effect. No GUI settings panel exposing "Pinned
Columns" was found either — this was only reachable via direct
.baseYAML editing.columnOrder— tried as a narrower alternative (reorder existing populated columns ratherthan create empty ones):
columnOrder: '{"formula.weekDay":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]}'.Also has zero effect — populated columns (e.g. Friday, Saturday, Sunday, Thursday) consistently
render in plain alphabetical order regardless of the specified order. Verified the JSON wasn't
silently stripped by any Bases GUI resave — it's present in the file exactly as written, just
ignored at render time.
Net effect: a kanban view grouped by a derived value (e.g. day of week) can only ever show columns
for values that currently have at least one task, in alphabetical order — with no way to force
consistent column existence or ordering via any documented or discoverable config option.
Steps to Reproduce
For the column-header bug:
tasknotesKanbanview bytask.status(currently required for the view to populateat all — see linked issue).
status: open(or any status value).For
pinnedColumns/columnOrder:tasknotesKanbanview grouped by a property/formula where only some possible valuesare currently present in the data (e.g. a
weekDayformula for a week where only 3 of 7weekdays have tasks).
pinnedColumns(comma-separated string) to the full list of all possible values. RestartObsidian. Observe: only the 3 populated day-columns appear; the other 4 don't.
pinnedColumns, instead setcolumnOrder(JSON-string form, see below) to the fullMonday→Sunday order. Restart Obsidian. Observe: the 3 populated columns still render in
alphabetical order (e.g. Friday, Saturday, Sunday), not the specified order.
TaskNotes Debug Info
Affected Task Frontmatter
Relevant Bases File Content
Relevant Settings or Customizations
Default
fieldMapping; no custom status labels/icons beyond TaskNotes' stock status definitions.Console Errors or Logs
Screenshots or Screen Recording
No response