Commit graph

4 commits

Author SHA1 Message Date
Art Malanok
4f68f82e96 v0.1.4: address Obsidian Community automated review scorecard (code + styles)
Migrated from the legacy obsidianmd/obsidian-releases PR workflow to
the new https://community.obsidian.md portal. The new automated scan
flagged 128 findings on v0.1.3; this commit addresses the code, style,
and infrastructure findings.

Code (TypeScript)
- Replace document.createElement("div"|"span"|"input"|"datalist"|
  "option") with Obsidian's createDiv/createSpan/createEl helpers
  (~30 call sites across src/views/ and src/interactions/).
- Replace document.createElementNS(svg-ns, ...) with createSvg().
- Replace bare document.X / document.querySelector /
  document.createTextNode with activeDocument.X for popout window
  compatibility.
- Replace setTimeout/clearTimeout/window.setTimeout/window.clearTimeout
  with activeWindow.setTimeout/clearTimeout (7 call sites).
- Introduce TaskFrontmatter interface in src/types.ts and narrow all
  metadataCache.getFileCache(...).frontmatter accesses to it — fixes
  the bulk of no-unsafe-* lint warnings.
- Type-safe loadData() in main.ts via Partial<TasksPluginSettings>.
- stripWikilinks() now accepts unknown and narrows internally.
- Use configured inlineTaskTag in the inline task regex (the `tag`
  parameter was declared-but-unused).
- Prefix the unused sourceFile parameter on updateStub with `_`.

Styles
- Remove all !important declarations (5 occurrences); bump
  specificity via .ot-view parent selector instead.
- Merge the duplicate .ot-task-row definition and guard touch-target
  overrides under @media (pointer: coarse).
- Expand #fff -> #ffffff.

Infrastructure
- Add CONTRIBUTING.md (fixes "missing contributing guide" hygiene
  flag on the portal scorecard).

Deferred for follow-up
- package-lock.json — couldn't generate from this session
  (npmjs.org unreachable). Run `npm install` locally and commit
  the lockfile to clear the last "no lockfile" finding.
- .github/workflows/release.yml — needs `workflow` OAuth scope to
  push; will be added in a follow-up commit.
2026-05-26 17:08:12 -07:00
Art Malanok
c58cdf5638 v0.1.2: address ObsidianReviewBot findings
Why:
- Fix unhandled promises (void-prefixed calls in event listeners, setTimeout
  callbacks, and sync handlers).
- Replace async-without-await signatures (loadTasks, onunload, onClose,
  countTasksInBucket) with sync equivalents.
- Narrow nullish-coalesce stringify of keyof TaskItem to exclude TFile /
  objects from "[object Object]" stringification.
- Replace innerHTML with DOM API in the empty-state renderer.
- Replace createEl("h2", ...) with setHeading() via Setting API for
  settings sections.
- Move inline element.style.* assignments into styles.css classes.
- Use FileManager.trashFile() instead of Vault.delete() for stub cleanup.
- UI strings use sentence case ("Open tasks", "New bucket", "Secondary
  grouping", "Getting started").
- Remove unused imports/bindings (BucketGroup, TaskRowCallbacks,
  BucketConfig, originalOnComplete).

Co-authored-by: Isaac
2026-04-16 18:38:53 -07:00
Art Malanok
cb9adf3008 fix: board-source sync, mobile context menu, collision handling
- Wire toggleDoneWithSync: checking task on board now checks source note
- Add right-click/long-press context menu with "Move to..." bucket list
- Warn when changing bucket property in settings
- Handle stub filename collisions with random suffix
- Document #task position and multiple wikilink behavior

Co-authored-by: Isaac
2026-03-26 12:16:32 -07:00
Art Malanok
9f88021fed feat: obsidian-tasks v0.1.0 — clean, minimal task board plugin
Board and Focus view modes with customizable buckets, secondary
grouping by any frontmatter property, inline #task tracking from
notes with bidirectional sync, drag-and-drop, completion animations,
ARIA accessibility, and mobile-friendly touch targets.

Co-authored-by: Isaac
2026-03-25 20:48:39 -07:00