Skip to content

Releases: ashproto/Resume-Designer

Resume Designer 1.15.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 16:49
f7871bf

Resume Designer 1.15.0

✨ New features

Profiles

  • Move profile switching into Settings → Account with stats
  • Move the profile switcher beside the brand as an avatar chip
  • Manage-profiles dialog with export, import, and guards
  • Header profile switcher with reload-based switching
  • Per-profile export and import-as-new-profile
  • Multi-profile backup format 2 and scoped legacy restore
  • Share the openrouter api key across profiles
  • Crash-safe adoption migration and boot wiring
  • Registry crud with delete guards
  • Namespace per-profile keys at the appStorage facade
  • Add pure profile key classification module

Library

  • Phase 2 polish - resize-aware preview, backdated adds, scoped empty states
  • Timeline view with per-resume lanes
  • Timeline tab with outcome stats strip
  • Application stats and timeline helpers
  • Live first-page preview in detail pane
  • Detail pane with application tracking and variant actions
  • Add library dialog with tiered search and status chips
  • Add tiered library search module
  • Auto-draft applications when tailoring
  • Add applications store with status pipeline

Bridge

  • Pairing token section in settings data tab
  • Headless per-variant pdf export endpoint
  • Wire loopback requests through the js router
  • Pure request router with auth and all v1 endpoints
  • Context-free ai completion entry point
  • Include learned answers and bridge token in backups
  • Learned-answers store for application q&a
  • Start loopback listener and register bridge_respond
  • Add loopback bridge state, respond command, and request forwarding

Updates & Changelog

  • Split digest summary from full log in release bodies
  • Synthesize a user-level digest with grouped-log fallback
  • Sentinel-based digest validator for release notes

Canvas

  • Actionable empty state when no resume is loaded

Settings

  • Distinguish current profile and keep profile list compact

🐛 Fixes

Profiles

  • Refuse profile ops while a backup restore is guarded
  • Roll back partial adoption copies on a browser quota failure
  • Treat markerless degraded init as adoption pending
  • Keep the blob credential until the shared write is durable
  • Flush an imported profile and roll back if it isn't durable
  • Block switching/creating profiles during adoption recovery
  • Surface profile-dialog save failures to switch/export callers
  • Abort a profile switch when the pre-switch save fails
  • Give the adoption marker a resume- prefix so disk adoption keeps it
  • Validate/coerce registry emoji so a bad one can't blank the app
  • Activate mapping only after sources are durably deleted
  • Never delete adoption sources while mapping is off
  • Roll back a profile import that fails mid-write
  • Keep print mapping off during pending adoption
  • Flush pending edits before exporting the active profile
  • Hide the switcher while an adoption is mid-recovery
  • Include unprefixed live data in a recovery-state profile export
  • Keep mapping inactive when adoption doesn't complete
  • Move adoption keys one at a time to avoid doubling storage
  • Don't recopy a stale source over post-adoption edits
  • Use a filename-safe separator for namespaced storage keys
  • Throw synchronously for unknown export profile ids
  • Gate adoption finalization on every durability barrier
  • Durable adoption barriers and existence-checked key extraction
  • Reject corrupt registries whole and re-roll id collisions

Backup

  • Resume saves only if this import acquired the suspension
  • Only resume saves if this import suspended them
  • Resume saves after a failed flush only on the merge path
  • Re-enable saves when the post-import flush fails
  • Suspend saves before the durable import, not after
  • Suspend saves before a restore reload to prevent stale overwrite
  • Avoid prototype-name collisions in the profile map
  • Reject case-colliding registry ids before a format-2 restore
  • Reject unknown shared keys before a format-2 restore
  • Capture markerless recovery data in full backups
  • Roll back cached imports when the durability flush fails
  • Reconcile orphan namespaces into the exported registry
  • Reject orphan profiles entries before a format-2 restore
  • Roll back a quota-failed import instead of losing the store
  • Capture unprefixed live data in a recovery-state export
  • Reject a non-object shared container before the format-2 wipe
  • Validate shared values before the format-2 wipe
  • Accept keyless profiles in format-2 restores
  • Validate profile entries before wipe and restore quota-safely

Library

  • Persist notes on every edit so they survive a native close
  • Flush pending note edits on teardown
  • Persist application notes during editing, not only on blur
  • Clear appliedAt when reverting an application to prepared
  • Caption and status legend for the timeline view
  • Show tab panels only while active so hidden panes free their space
  • Honest backdated history and guarded timeline jumps
  • Anchor view-all item in variant dropdown
  • Cancel dialog escape-close while renaming via onEscapeKeyDown
  • Keep dialog open when escape cancels a rename
  • Reset rename on escape and pin tailor variant id
  • Route library variant deletes through thread handling
  • Include applications store in full backup

Profile

  • Track a failed markdown import on the tracked-save flag
  • Make renames durable and surface rename failures
  • Make deletion durable before reporting success
  • Abort the switch reload when the pointer is not durable
  • Retry a failed debounced save when flushing

Bridge

  • Reject writes while a destructive import is in flight
  • Polish — init rejection guard, clipboard catch, aria-label, unicode test, comments
  • 404 prototype-key resume ids instead of resolving inherited keys
  • Mirror applications.js storage-error handling in learned answers

Settings

  • Refresh the header avatar after renaming the active profile
  • Surface a quota failure from profile creation
  • Cleared shared api key masks stale blob values

Storage

  • Drop unreachable passthrough branch in flushDeferredWrites
  • Central appStorage guard for backup restores
  • Cancel the coalescing drain timer when a flush forces a drain

Updates & Changelog

  • Require every post-heading digest line to be a bullet
  • Degrade malformed release bodies atomically
  • Reject inline sentinels and bare section headers in digests

Job Descriptions

  • Skip tailor drafts when the pinned résumé was deleted mid-generation
  • Keep tailored changes on the resume they were generated for

Migration

  • Skip legacy import when physical namespaces survive
  • Skip legacy electron import on profiled stores

Onboarding

  • Make dismissing the wizard durable for empty profiles
  • Let a new empty profile's onboarding be dismissed

Updates

  • Gate release-notes dialog on scheduled onboarding too
  • Defer release-notes dialog until onboarding closes

Ci

  • Emit the validated normalized digest, not the raw lines

General

  • Close cross-feature seams from the whole-branch review

PDF Export

  • Hold the export guard across the interactive preview lifecycle

Persistence

  • Keep the blob credential fallback on every settings save

Security

  • Generate profile and thread ids with crypto.getRandomValues

⚡ Improvements

Storage

  • Coalesce write-behind drains instead of one per keystroke

Resume Designer (beta)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Jun 18:34
64b3d09

Resume Designer 1.15.0-next.112

✨ New features

Profiles

  • Move profile switching into Settings → Account with stats
  • Move the profile switcher beside the brand as an avatar chip
  • Manage-profiles dialog with export, import, and guards
  • Header profile switcher with reload-based switching
  • Per-profile export and import-as-new-profile
  • Multi-profile backup format 2 and scoped legacy restore
  • Share the openrouter api key across profiles
  • Crash-safe adoption migration and boot wiring
  • Registry crud with delete guards
  • Namespace per-profile keys at the appStorage facade
  • Add pure profile key classification module

Library

  • Phase 2 polish - resize-aware preview, backdated adds, scoped empty states
  • Timeline view with per-resume lanes
  • Timeline tab with outcome stats strip
  • Application stats and timeline helpers
  • Live first-page preview in detail pane
  • Detail pane with application tracking and variant actions
  • Add library dialog with tiered search and status chips
  • Add tiered library search module
  • Auto-draft applications when tailoring
  • Add applications store with status pipeline

Bridge

  • Pairing token section in settings data tab
  • Headless per-variant pdf export endpoint
  • Wire loopback requests through the js router
  • Pure request router with auth and all v1 endpoints
  • Context-free ai completion entry point
  • Include learned answers and bridge token in backups
  • Learned-answers store for application q&a
  • Start loopback listener and register bridge_respond
  • Add loopback bridge state, respond command, and request forwarding

Updates & Changelog

  • Split digest summary from full log in release bodies
  • Synthesize a user-level digest with grouped-log fallback
  • Sentinel-based digest validator for release notes

Canvas

  • Actionable empty state when no resume is loaded

Settings

  • Distinguish current profile and keep profile list compact

🐛 Fixes

Profiles

  • Refuse profile ops while a backup restore is guarded
  • Roll back partial adoption copies on a browser quota failure
  • Treat markerless degraded init as adoption pending
  • Keep the blob credential until the shared write is durable
  • Flush an imported profile and roll back if it isn't durable
  • Block switching/creating profiles during adoption recovery
  • Surface profile-dialog save failures to switch/export callers
  • Abort a profile switch when the pre-switch save fails
  • Give the adoption marker a resume- prefix so disk adoption keeps it
  • Validate/coerce registry emoji so a bad one can't blank the app
  • Activate mapping only after sources are durably deleted
  • Never delete adoption sources while mapping is off
  • Roll back a profile import that fails mid-write
  • Keep print mapping off during pending adoption
  • Flush pending edits before exporting the active profile
  • Hide the switcher while an adoption is mid-recovery
  • Include unprefixed live data in a recovery-state profile export
  • Keep mapping inactive when adoption doesn't complete
  • Move adoption keys one at a time to avoid doubling storage
  • Don't recopy a stale source over post-adoption edits
  • Use a filename-safe separator for namespaced storage keys
  • Throw synchronously for unknown export profile ids
  • Gate adoption finalization on every durability barrier
  • Durable adoption barriers and existence-checked key extraction
  • Reject corrupt registries whole and re-roll id collisions

Backup

  • Resume saves only if this import acquired the suspension
  • Only resume saves if this import suspended them
  • Resume saves after a failed flush only on the merge path
  • Re-enable saves when the post-import flush fails
  • Suspend saves before the durable import, not after
  • Suspend saves before a restore reload to prevent stale overwrite
  • Avoid prototype-name collisions in the profile map
  • Reject case-colliding registry ids before a format-2 restore
  • Reject unknown shared keys before a format-2 restore
  • Capture markerless recovery data in full backups
  • Roll back cached imports when the durability flush fails
  • Reconcile orphan namespaces into the exported registry
  • Reject orphan profiles entries before a format-2 restore
  • Roll back a quota-failed import instead of losing the store
  • Capture unprefixed live data in a recovery-state export
  • Reject a non-object shared container before the format-2 wipe
  • Validate shared values before the format-2 wipe
  • Accept keyless profiles in format-2 restores
  • Validate profile entries before wipe and restore quota-safely

Library

  • Persist notes on every edit so they survive a native close
  • Flush pending note edits on teardown
  • Persist application notes during editing, not only on blur
  • Clear appliedAt when reverting an application to prepared
  • Caption and status legend for the timeline view
  • Show tab panels only while active so hidden panes free their space
  • Honest backdated history and guarded timeline jumps
  • Anchor view-all item in variant dropdown
  • Cancel dialog escape-close while renaming via onEscapeKeyDown
  • Keep dialog open when escape cancels a rename
  • Reset rename on escape and pin tailor variant id
  • Route library variant deletes through thread handling
  • Include applications store in full backup

Profile

  • Track a failed markdown import on the tracked-save flag
  • Make renames durable and surface rename failures
  • Make deletion durable before reporting success
  • Abort the switch reload when the pointer is not durable
  • Retry a failed debounced save when flushing

Bridge

  • Reject writes while a destructive import is in flight
  • Polish — init rejection guard, clipboard catch, aria-label, unicode test, comments
  • 404 prototype-key resume ids instead of resolving inherited keys
  • Mirror applications.js storage-error handling in learned answers

Settings

  • Refresh the header avatar after renaming the active profile
  • Surface a quota failure from profile creation
  • Cleared shared api key masks stale blob values

Storage

  • Drop unreachable passthrough branch in flushDeferredWrites
  • Central appStorage guard for backup restores
  • Cancel the coalescing drain timer when a flush forces a drain

Updates & Changelog

  • Require every post-heading digest line to be a bullet
  • Degrade malformed release bodies atomically
  • Reject inline sentinels and bare section headers in digests

Job Descriptions

  • Skip tailor drafts when the pinned résumé was deleted mid-generation
  • Keep tailored changes on the resume they were generated for

Migration

  • Skip legacy import when physical namespaces survive
  • Skip legacy electron import on profiled stores

Onboarding

  • Make dismissing the wizard durable for empty profiles
  • Let a new empty profile's onboarding be dismissed

Updates

  • Gate release-notes dialog on scheduled onboarding too
  • Defer release-notes dialog until onboarding closes

Ci

  • Emit the validated normalized digest, not the raw lines

General

  • Close cross-feature seams from the whole-branch review

PDF Export

  • Hold the export guard across the interactive preview lifecycle

Persistence

  • Keep the blob credential fallback on every settings save

Security

  • Generate profile and thread ids with crypto.getRandomValues

⚡ Improvements

Storage

  • Coalesce write-behind drains instead of one per keystroke

Resume Designer 1.14.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 02:22
29c2776

Resume Designer 1.14.0

✨ New features

AI Chat

  • Refine cross-résumé threads and streaming UX
  • Add a fade-rise streaming markdown renderer
  • Expose re-home action + active variant id to the panel
  • Tag turns with their résumé + mark context switches
  • Follow the active résumé on variant switch
  • Home new threads to the active résumé + pick on load
  • Name the active résumé in the chat system prompt
  • Add reassignThreadsForDeletedVariant + countThreadsForVariant
  • Add lastTurnVariantId + withContextMarker helpers
  • Add groupThreadsByHome + pickCurrentThreadId helpers
  • Add homeVariantId to threads + migrateThreads

Updates & Changelog

  • Organize the release changelog by type and app area
  • Add a release-history view in Settings
  • Show release notes before and after updating
  • Add SafeMarkdown and the update-notes dialog host
  • Add changelog data helpers and post-update check

Interface

  • Prompt to keep or delete threads on résumé delete
  • Banner when viewing a thread from another résumé
  • Group the thread selector by résumé + add move-here
  • Render the context-switch divider with a jump button

Desktop App

  • Add Settings and Check for Updates to the macOS app menu

🐛 Fixes

AI Chat

  • Gate request cleanup by identity to end a stale-abort race
  • Read web-search citation urls from the nested field
  • Clear helper thinking on origin delete, guard interview start
  • Expose stop on the thinking block for helper runs
  • Guard helper success paths against abort-resolved partials
  • Scope helper flows to their origin thread with abort support
  • Re-check the active resume before improving the summary
  • Derive live reasoning from details-only streams
  • Gate resume-mutating message actions by origin variant
  • Abort an in-flight stream when its thread dies with a resume
  • Repaint the live stream when reopening its origin thread
  • Keep a stop affordance for background-thread streams
  • Abort a reply only when its origin thread is deleted
  • Don't abort/misroute replies on résumé navigation or interview finish
  • Bind async replies to the résumé/thread active at request start
  • Only abort an in-flight reply when deleting the active thread
  • Keep an in-flight reply running when switching threads
  • Trim the outgoing thread on variant switch
  • Scope the profile interview to the thread it started in
  • Stamp async replies with the résumé active at request start
  • Reopen the last-selected thread on launch, not the one left
  • Keep thread selection homed to the active résumé after delete
  • Home the replacement thread to the active résumé on last delete
  • Re-read threads before persist in the follow effect
  • Persist migrated threads on switch + scope context marker
  • Route slash-command results to the dispatch-time thread

PDF Export

  • Materialize all inherited geometry boxes before reparenting
  • Scale inherited page boxes in the macOS merge path
  • Scale page annotations with content on macOS merge
  • Materialize inherited page resources when merging sheets
  • Size each browser PDF page from its own sheet
  • Set Windows print orientation from the page dimensions
  • Set Windows print orientation from each sheet's dimensions
  • Export each sheet as its own page on Windows (macOS parity)

Interface

  • Unwind a pending inline change set before showing a new one
  • Render modal dialogs above the app header
  • Slide the chat panel on-screen when opened on narrow viewports
  • Repaginate after accent changes
  • Swap import/export menu icons

Résumé Rendering

  • Split inline tool rows across pages at the token level
  • Preserve preview scroll position across résumé re-renders
  • Split oversized sidebar skills and tools across pages

Updates & Changelog

  • Resolve relative changelog links to github blob routes
  • Resolve relative changelog links to absolute urls
  • Resolve beta version matching and post-update retry

Ci

  • Validate bullet count so a late-truncated rewrite can't publish
  • Give the changelog rewrite a token budget so notes can't truncate

Data & Storage

  • Recover an interrupted localstorage-to-disk adoption
  • Normalize legacy object-map job descriptions

Pagination

  • Preserve sidebar wrappers when splitting bulleted tools
  • Grow oversized atomic sheets instead of clipping them

Desktop App

  • Install the native app menu on macOS only

Job Descriptions

  • Tolerate recommendations without a section

Onboarding

  • Don't re-save target jobs on repeat tailoring passes

Profile

  • Flush pending edits before starting the interview

What's Changed

Other Changes

  • fix: deferred follow-ups (chat-thread routing, atomic-block clipping) + website link by @ashproto in #61
  • feat(chat): per-résumé chat threads by @ashproto in #62
  • Preview rendering fixes: scroll preservation + sidebar section pagination by @ashproto in #63
  • feat(desktop): add Settings and Check for Updates to the macOS app menu by @ashproto in #66
  • feat(chat): smooth streaming, wide-content containment, and thread-switcher clarity by @ashproto in #65
  • fix: resolve the two Codex findings on the next→main promotion (#64) by @ashproto in #67
  • fix(chat): keep a stop affordance for background-thread streams by @ashproto in #68
  • feat(update): user-facing changelog — before/after update + history (Phase 1) by @ashproto in #69
  • fix(chat): repaint the live stream when reopening its origin thread by @ashproto in #70
  • fix(chat): abort an in-flight stream when its thread dies with a resume by @ashproto in #71
  • fix(chat): gate resume-mutating message actions by origin variant by @ashproto in #72
  • docs: add project-level claude.md with commands, layout, and repo rules by @ashproto in #73
  • fix(chat): scope helper flows to their origin thread with abort support by @ashproto in #74
  • fix(pdf): materialize inherited page resources when merging sheets by @ashproto in #75
  • fix(desktop): install the native app menu on macOS only by @ashproto in #76
  • fix(update): resolve relative changelog links to absolute urls by @ashproto in #77
  • feat(update): organize the release changelog by type and app area by @ashproto in #78
  • fix(chat): gate request cleanup by identity to end a stale-abort race by @ashproto in #79
  • fix(ci): give the changelog rewrite a token budget so notes can't truncate by @ashproto in #80
  • Promote next → main: chat threads, per-sheet PDF, in-app changelog, macOS menu, hardening by @ashproto in #64

Full Changelog: v1.13.1...v1.14.0

Resume Designer 1.13.1

Choose a tag to compare

@github-actions github-actions released this 27 Jun 12:50
5c5051a

Resume Designer 1.13.1

  • fix(render): keep sidebar skills and tools from overflowing the column

What's Changed

Other Changes

  • fix(render): keep sidebar skills and tools from overflowing the column by @ashproto in #59
  • promote: sidebar skills/tools overflow fix + regenerated hero by @ashproto in #60

Full Changelog: v1.13.0...v1.13.1

Resume Designer 1.13.0

Choose a tag to compare

@github-actions github-actions released this 27 Jun 01:01
071516b

Resume Designer 1.13.0

  • fix(pdf): match browser pdf orientation to the page dimensions
  • fix(pdf): delimit macOS pdf wrapper streams to avoid token merges
  • fix: paginate browser pdf export per sheet and guard font-load re-render
  • fix: re-paginate on toolbar text-size change and keep summary markdown on cancel
  • feat: add github pages marketing site
  • fix(pdf): keep the export preview open when a save fails
  • fix(pdf): strip on-screen sheet chrome from browser pdf export
  • feat(backup): restore manual import of previous (Electron) app data
  • fix(render): format markdown emphasis in the summary field
  • fix(pagination): re-paginate after profile photo changes
  • fix(pagination): re-paginate after font changes too
  • fix(pdf): paginate the Windows PDF export per sheet
  • fix(pagination): re-paginate after spacing changes when a page size is fixed
  • feat(pdf): preview the generated pdf before saving
  • fix(glass): show vibrancy through the gaps between paginated sheets
  • feat(pdf): multi-page export matching the on-screen sheets
  • feat(pagination): page setup + on-screen page sheets

What's Changed

Other Changes

  • feat: page setup, on-screen pagination, and multi-page PDF export with preview by @ashproto in #47
  • chore: repoint repo urls to ashproto after username rename by @ashproto in #48
  • fix(pdf): strip on-screen sheet chrome from browser pdf export by @ashproto in #50
  • fix(pdf): keep the export preview open when a save fails by @ashproto in #51
  • build(deps): upgrade to vite 8 and patch undici/dompurify by @ashproto in #52
  • feat: add github pages marketing site by @ashproto in #53
  • fix: re-paginate on toolbar text-size change and keep summary markdown on cancel by @ashproto in #54
  • fix: paginate browser pdf export per sheet and guard font-load re-render by @ashproto in #55
  • chore: raise macOS minimum to 14.4 for pdf.js compatibility by @ashproto in #56
  • fix(pdf): delimit macOS pdf wrapper streams to avoid token merges by @ashproto in #57
  • fix(pdf): match browser pdf orientation to the page dimensions by @ashproto in #58
  • Promote next → main: page setup, pagination & multi-page PDF, owner rename by @ashproto in #49

Full Changelog: v1.12.0...v1.13.0

Resume Designer 1.12.0

Choose a tag to compare

@github-actions github-actions released this 15 Jun 00:25
d80a43a

Resume Designer 1.12.0

  • fix(onboarding): scope wizard window-drag to a top header strip
  • fix(tauri): grant core:window:allow-destroy for the titlebar close path
  • fix(renderer): make inline-tag tools per-chip editable in stacked layouts
  • fix(structure): keep tool slots aligned while editing a cleared field
  • feat(onboarding): dedicated generating-résumé screen for the job flow
  • fix(editor): hug the floating toolbar when it wraps to two rows
  • fix(structure): default generated and blank skills sections to bulleted
  • fix(profile): show clean plain text instead of raw markdown markers
  • feat(ai): apply strategic bold/italic emphasis in generated résumés
  • fix(editor): edit a single tool chip instead of the whole list
  • fix(header): make the kebab-to-tools gap draggable
  • feat(structure): add a tools display option, sync the toggle, default to bulleted
  • fix(editor): stop the inline AI button sticking or covering the chrome
  • feat(updater): background update polling with an actionable, deduped toast
  • fix(ui): legible bottom-bar icons, theme-aware glass pill, distinct fields
  • fix(storage): abort the disk load when a valid-key file cannot be read
  • fix(storage): abort PDF print init when disk data cannot load
  • fix(storage): retry failed writes; gate update relaunch on durability
  • fix(storage): propagate flush failures to durability callers
  • fix(chat): keep the draft when a send is ignored mid-stream
  • fix(storage): open the React mount gate only after the legacy migration lands
  • fix(fonts): load resume fonts only for the selected pairing — zero Google requests on system fonts
  • fix(storage): surface failed writes in create/duplicate/import, auto-save, and JD paths
  • feat(storage): boot appStorage first, read-only print init, flush at every exit point
  • feat(storage): appStorage facade with write-behind cache and boot adoption
  • feat(storage): add Rust per-key disk storage commands with atomic writes
  • fix(onboarding): keep replayed onboarding dismissible
  • fix(persistence): surface storage-full failures when saving a generated resume
  • fix(diff): keep rejected changes out of Apply All
  • fix(onboarding): honor new-resume mode without an API key
  • fix(ui): lift Radix dropdowns above the onboarding and jobs overlays
  • feat(ai): stream OpenRouter reasoning live with full run transparency
  • feat(structure): bottom-bar text tools, custom experience sort, persist design-tab collapse
  • fix: restyle Settings + History panels to match the app's design
  • fix: re-add Preflight form-control resets for shadcn surfaces
  • fix: derive PDF filename from the active variant, not a dead DOM query
  • fix: sync bottom-bar text tools with React-managed inputs
  • feat: convert the onboarding wizard to React
  • feat: convert the job descriptions panel to React
  • feat: convert the user profile panel to React
  • feat: convert the AI chat panel to React
  • feat: convert the structure panel to React
  • feat: convert version history to a React component
  • feat: convert the app header to a React component
  • feat: boot app chrome through React with print split and Settings dialog
  • feat: add shadcn/ui primitives and glass-aware theme tokens

What's Changed

Other Changes

  • feat: migrate app chrome to React + shadcn/ui with live AI streaming by @SiriusA7 in #39
  • feat(storage): per-key disk storage replaces webview localStorage by @SiriusA7 in #40
  • Polish pass: icon legibility, update polling, header reorg, field contrast, hover-button fixes by @SiriusA7 in #41
  • Polish: tool editing, AI emphasis, generating screen, and chrome fixes by @SiriusA7 in #42
  • fix(onboarding): scope wizard window-drag to a top header strip by @SiriusA7 in #43
  • merge next into main: promote the beta channel to stable by @SiriusA7 in #45

Full Changelog: v1.11.1...v1.12.0

Resume Designer 1.11.1

Choose a tag to compare

@github-actions github-actions released this 08 Jun 00:47
a59e020

Resume Designer 1.11.1

  • fix(updater): keep checking stable when the beta endpoint fails
  • fix(updater): make the beta channel a superset and default beta builds to it

What's Changed

Other Changes

  • Settings panel polish: Usage tab, theme contrast fix, drop Electron + header theme dropdown by @SiriusA7 in #36
  • fix(updater): keep checking stable when the beta endpoint fails by @SiriusA7 in #38
  • Promote next → main: stable v1.11.1 (settings polish + updater channel fix) by @SiriusA7 in #37

Full Changelog: v1.11.0...v1.11.1

Resume Designer 1.11.0

Choose a tag to compare

@github-actions github-actions released this 07 Jun 02:18
b3fc004

Resume Designer 1.11.0

  • feat: add header settings gear and relocate update/backup controls from Tools
  • feat: promote settings into a top-level panel with General/AI/Updates/Data tabs
  • feat: add launch update-check preference consulted by startupUpdateCheck

What's Changed

Other Changes

  • ci: bump GitHub Actions to Node 24 runtimes and build on Node 24 by @SiriusA7 in #33
  • feat: consolidated Settings panel (theme, updates, data, AI) by @SiriusA7 in #34
  • Promote next → main: cut stable v1.11.0 (Settings panel + Node 24 CI) by @SiriusA7 in #35

Full Changelog: v1.10.0...v1.11.0

Resume Designer 1.10.0

Choose a tag to compare

@github-actions github-actions released this 06 Jun 19:25
04419ab

Resume Designer 1.10.0

  • feat: add in-app stable/beta update channel toggle
  • feat(updater): add channel-aware check/install commands

What's Changed

Other Changes

  • ci: fix skip-build race in release decide job by @SiriusA7 in #30
  • feat: in-app stable/beta update channel toggle by @SiriusA7 in #31
  • Promote next → main: release v1.10.0 by @SiriusA7 in #32

Full Changelog: v1.9.5...v1.10.0

Resume Designer 1.9.5

Choose a tag to compare

@github-actions github-actions released this 06 Jun 17:56
a10303a

Resume Designer 1.9.5

  • fix(security): escape recommendation index and impact label
  • fix(security): escape recommendation impact and typography font fields
  • fix(security): coerce matchScore to string before escaping
  • fix(security): escape match-score and custom-palette swatch
  • fix(security): escape remaining xss-through-dom interpolations
  • fix(security): strip annotated example-URL placeholder on profile import
  • fix(security): use crypto.getRandomValues for generated IDs
  • fix(security): escape onboarding inputs and DOM text rendered into HTML
  • fix(security): escape profile contact fields and validate example-URL by hostname
  • fix(security): use escapeAttr for HTML attributes and consolidate escape helpers
  • fix: pass --allow-same-version to npm version in release build

What's Changed

Maintenance

  • build(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #18

Other Changes

  • ci: gate releases behind release-please (PR 2 of CI/CD redesign) by @SiriusA7 in #21
  • chore: pin Node 20 and document npm 10 lockfile requirement by @SiriusA7 in #22
  • ci: skip commitlint on dependabot commits by @SiriusA7 in #23
  • fix(security): resolve CodeQL code-scanning alerts (XSS escaping, secure IDs, URL check) by @SiriusA7 in #24
  • fix(security): clear remaining 4 xss-through-dom CodeQL alerts by @SiriusA7 in #25
  • fix(security): escape last 2 xss-through-dom sinks (match-score, custom-palette swatch) by @SiriusA7 in #26
  • fix(security): comprehensive escape pass for last 2 xss-through-dom alerts by @SiriusA7 in #27
  • fix(security): escape last xss-through-dom sink (recommendation index) by @SiriusA7 in #28
  • ci: replace release-please with next/main dual-channel release pipeline by @SiriusA7 in #29

New Contributors

Full Changelog: v1.9.4...v1.9.5