Skip to content

Releases: cruisencode/obsidian-job-application-tracker

1.1.0

Choose a tag to compare

@cruisencode cruisencode released this 16 Sep 13:44
046c9c3

🚀 What's New in Version 1.1.0

📋 Data Integrity & Real-Time Note Synchronization

  • Interview Debrief Sync: Logging interview outcomes now updates the ## 📅 Interviews & Stages section in the Markdown note body from (Scheduled) to (Completed) or (Cancelled) in real time.
  • Note Overview & Title Sync: Editing application details (company, role, salary, location, workplace model, source) keeps the # Company - Role title and ## 📋 Overview note body section in sync with frontmatter.
  • Backlink-Safe File Renaming: Modifying an application's company or role automatically renames the note file on disk via Obsidian's fileManager.renameFile, preserving all Obsidian backlinks.
  • Debrief Note Bleed Fix: Switching interview rounds in LogInterviewOutcomeModal cleanly resets outcome notes and status, preventing feedback from bleeding across rounds.
  • Sanitization Fallback: Added safe filename fallback ("Untitled Application") and escaped double quotes in frontmatter templates to prevent YAML parsing errors.

🎯 Workflow & UX Enhancements

  • Non-Destructive Modal Navigation: Canceling or closing child modals (Edit Details, + Add Contact, + Schedule Interview, Log Outcome) safely returns to the active tab in ManageApplicationModal instead of ejecting users to the dashboard.
  • Native Localized Date Pickers: Replaced plain-text date inputs with native HTML5 <input type="date">, rendering localized calendar pickers and clean, locale-neutral descriptions.
  • Workspace Tab Integration: Newly created applications and generated interview prep notes now open in dedicated workspace tabs (getLeaf("tab")) rather than staying hidden behind the tracker.
  • Kanban Drop Deduplication: Dropping a card within its current column short-circuits immediately, preventing redundant status transitions and duplicate activity history entries.
  • Smart Table Sorting: Table sorting by Status now respects natural pipeline lifecycle order (WishlistAppliedScreeningInterviewingOfferAccepted), and sorting by Salary compares parsed numeric values ($20k sorts before $150k).

♿ Visual Polish & Accessibility (WCAG 2.1 AA)

  • Keyboard Menu Anchoring: Fixed context menus jumping to (0, 0) when activated via keyboard (Enter/Space), correctly anchoring them below the focused button.
  • Accepted Indicator & Custom Status Fallback: Added missing green .status-accepted activity dot and provided default styling for user-defined custom status badges.
  • Responsive Sankey Diagram in Sidebars: Added min-width: 720px to ensure the Sankey diagram remains crisp and triggers smooth horizontal scrolling when docked into narrow sidebars.
  • Light Theme Contrast: Optimized yellow ("Offer") and green ("Accepted") badges to meet WCAG AA contrast standards (>= 4.5:1) in light themes.

⚙️ Obsidian Compliance & Settings

  • Configurable Pipeline Stages: Added a settings tab control allowing users to view, customize, reorder, and reset pipeline statuses with live dropdown updates.
  • Workspace Leaf Preservation: Removed leaf detachment on onunload(), ensuring custom leaf placement and docking arrangements are preserved when reloading or disabling the plugin.
  • Modern Settings API: Replaced deprecated this.display() invocations with in-place dropdown updates.

What's Changed

  • Release v1.1.0: Data integrity, UX enhancements, and accessibility polish by @cruisencode in #5

Full Changelog: 1.0.6...1.1.0

1.0.6

Choose a tag to compare

@github-actions github-actions released this 14 Sep 17:03
4b3f017

What's Changed

Full Changelog: 1.0.5...1.0.6

1.0.5

Choose a tag to compare

@github-actions github-actions released this 09 Sep 15:34
10961b9

Release 1.0.5

This release addresses all findings from Round 2 of the plugin code review, including a critical indentation fix in updateApplicationDetails along with minor improvements across accessibility, UI states, settings handling, and theming.

🔴 Critical Fixes

  • Indentation in updateApplicationDetails: Corrected indentation on lines 472–481 in ApplicationService.ts from 6 tabs to 5 tabs, ensuring the block matches its lexical scope.

🟡 Minor Improvements & Bug Fixes

  • Tabbed Note Opening (m-1): Updated openNote() to always open files in a tab (getLeaf("tab")), preventing active editor panes from being unexpectedly overwritten.
  • Mode Switcher Double-Trigger (m-2): Removed redundant onkeydown listener on native <button> elements that triggered duplicate renders on Enter/Space activation.
  • Search & Filter Empty State (m-3): Added empty state with a "Clear Filters" button when a search query or status filter returns no results while applications exist in the vault.
  • File Input Cancel Reset (m-4): Properly reset attachment state if the file picker modal is opened and cancelled.
  • Deep Settings Merge (m-5): Replaced shallow Object.assign in loadSettings() with explicit, safe deep merging and defensive array copying for statuses and defaultSourceOptions.
  • Adaptive Theme Variables (m-6, m-7): Replaced hardcoded rgba(0, 0, 0, ...) shadows with standard Obsidian CSS variables (--shadow-s, --shadow-l) and hardcoded badge colors with color-mix() theme variables.
  • Sankey SVG Accessibility (m-8): Added role="img" and aria-label attributes to the native Sankey SVG element.
  • Modal Tabs ARIA Semantics (m-9): Added role="tablist" container semantics and role="tab", aria-selected, and tabindex to modal tab navigation buttons.
  • Funnel Progress Bar Styling (m-10): Added .job-tracker-progress-fill.status-accepted CSS class so "Accepted" applications render their fill color in the pipeline funnel.

Full Changelog: 1.0.4...1.0.5

1.0.4

Choose a tag to compare

@github-actions github-actions released this 08 Sep 20:39
2bd11df

Release 1.0.4

This release resolves the critical and major issues identified during the plugin code review, improving reliability, data integrity, and settings maintenance.

🔴 Critical Fixes

  • Null-Safety for Application Commands (C-1): Standardized active application resolution across all application-specific commands (edit-job-application, update-job-application-status, add-contact-to-application, add-interview-to-application, log-interview-outcome, manage-job-application, delete-job-application) using a unified withActiveOrSelectedApplication helper. Eliminates command crashes when no tracked file is open, prevents modal flickering, and gives a helpful notice when no applications exist in the vault.

🟠 Major Fixes & Enhancements

  • Required Field Validation in Edit Modal (M-1): Added validation checks preventing applications from being saved with empty company or role fields, and automatically focuses the invalid field.
  • Dynamic Settings Rendering (M-2): Preserved getSettingDefinitions() for Obsidian's settings API while refactoring display() to dynamically consume the definitions array. Eliminated ~150 lines of duplicate code and resolved all TypeScript linter warnings.
  • Vault Event Listener Edge Cases (M-3): Handled edge cases in delete and rename vault event listeners where metadata cache was cleared prior to deletion or where notes/folders were moved out of the tracker directory.
  • Resilient Markdown Body Sync with Fallbacks (M-4, M-5): Replaced brittle exact-match heading checks with flexible regular expressions (supporting custom heading levels, emojis, and formatting variations). Added fallback appending so notes with missing headings never silently drop updates or fall out of sync with frontmatter.

Full Changelog: 1.0.3...1.0.4

1.0.3

Choose a tag to compare

@github-actions github-actions released this 31 Aug 14:05
  • Mobile Viewport Fix: Fixed an issue where the main dashboard extended beyond safe screen bounds on iOS and mobile devices.
  • Focus & Navigation Improvements: Creating applications or scheduling interviews no longer steals focus or replaces the active tracker view when it is open in the main workspace.
  • Funding Link: Added project fundingUrl to the plugin manifest.

1.0.2

Choose a tag to compare

@github-actions github-actions released this 28 Aug 18:06

Initial release of the Job Application Tracker plugin for Obsidian.

1.0.1

Choose a tag to compare

@github-actions github-actions released this 28 Aug 17:55

Full Changelog: 1.0.0...1.0.1

1.0.0

Choose a tag to compare

@github-actions github-actions released this 28 Aug 17:46