Skip to content

chore(deps): bump the frontend-minor-patch group across 1 directory with 22 updates#315

Closed
dependabot[bot] wants to merge 1128 commits intomainfrom
dependabot/npm_and_yarn/frontend/frontend-minor-patch-b7c7c2457f
Closed

chore(deps): bump the frontend-minor-patch group across 1 directory with 22 updates#315
dependabot[bot] wants to merge 1128 commits intomainfrom
dependabot/npm_and_yarn/frontend/frontend-minor-patch-b7c7c2457f

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Mar 4, 2026

Bumps the frontend-minor-patch group with 20 updates in the /frontend directory:

Package From To
@mui/icons-material 7.3.5 7.3.8
@tanstack/react-query 5.90.10 5.90.21
@types/node 25.2.3 25.3.3
axios 1.13.5 1.13.6
i18next 25.8.13 25.8.14
lucide-react 0.554.0 0.576.0
react-hook-form 7.66.1 7.71.2
react-router-dom 7.13.0 7.13.1
recharts 3.5.0 3.7.0
tailwind-merge 3.4.0 3.5.0
@typescript-eslint/eslint-plugin 8.48.0 8.56.1
@vitejs/plugin-react 5.1.1 5.1.4
autoprefixer 10.4.22 10.4.27
eslint-plugin-react-refresh 0.4.24 0.5.2
globals 17.1.0 17.4.0
happy-dom 20.3.7 20.8.3
lint-staged 16.2.7 16.3.2
postcss 8.5.6 8.5.8
prettier 3.6.2 3.8.1
vite 7.2.4 7.3.1

Updates @mui/icons-material from 7.3.5 to 7.3.8

Release notes

Sourced from @​mui/icons-material's releases.

v7.3.8

A big thanks to the 15 contributors who made this release possible. Here are some highlights ✨:

@mui/material@7.3.8

Core

Docs

... (truncated)

Changelog

Sourced from @​mui/icons-material's changelog.

7.3.8

Feb 12, 2026

A big thanks to the 15 contributors who made this release possible. Here are some highlights ✨:

@mui/material@7.3.8

Core

Docs

... (truncated)

Commits

Updates @mui/material from 7.3.5 to 7.3.8

Release notes

Sourced from @​mui/material's releases.

v7.3.8

A big thanks to the 15 contributors who made this release possible. Here are some highlights ✨:

@mui/material@7.3.8

Core

Docs

... (truncated)

Changelog

Sourced from @​mui/material's changelog.

7.3.8

Feb 12, 2026

A big thanks to the 15 contributors who made this release possible. Here are some highlights ✨:

@mui/material@7.3.8

Core

Docs

... (truncated)

Commits

Updates @tanstack/react-query from 5.90.10 to 5.90.21

Release notes

Sourced from @​tanstack/react-query's releases.

@​tanstack/react-query-persist-client@​5.90.21

Patch Changes

  • Updated dependencies []:
    • @​tanstack/query-persist-client-core@​5.91.18
    • @​tanstack/react-query@​5.90.19

@​tanstack/react-query@​5.90.21

Patch Changes

  • refactor(react-query/useQueries): remove unreachable 'willFetch' branch in suspense promise collection (#10082)

@​tanstack/react-query-persist-client@​5.90.20

Patch Changes

  • Updated dependencies []:
    • @​tanstack/query-persist-client-core@​5.91.17
    • @​tanstack/react-query@​5.90.18

@​tanstack/react-query@​5.90.20

Patch Changes

  • Updated dependencies [e7258c5]:
    • @​tanstack/query-core@​5.90.20

@​tanstack/react-query-persist-client@​5.90.19

Patch Changes

  • Updated dependencies []:
    • @​tanstack/query-persist-client-core@​5.91.16
    • @​tanstack/react-query@​5.90.17

@​tanstack/react-query@​5.90.19

Patch Changes

  • Updated dependencies [53fc74e]:
    • @​tanstack/query-core@​5.90.19

@​tanstack/react-query@​5.90.18

Patch Changes

  • Updated dependencies [dea1614]:
    • @​tanstack/query-core@​5.90.18

@​tanstack/react-query@​5.90.17

Patch Changes

  • Updated dependencies [269351b]:
    • @​tanstack/query-core@​5.90.17
Changelog

Sourced from @​tanstack/react-query's changelog.

5.90.21

Patch Changes

  • refactor(react-query/useQueries): remove unreachable 'willFetch' branch in suspense promise collection (#10082)

5.90.20

Patch Changes

  • Updated dependencies [e7258c5]:
    • @​tanstack/query-core@​5.90.20

5.90.19

Patch Changes

  • Updated dependencies [53fc74e]:
    • @​tanstack/query-core@​5.90.19

5.90.18

Patch Changes

  • Updated dependencies [dea1614]:
    • @​tanstack/query-core@​5.90.18

5.90.17

Patch Changes

  • Updated dependencies [269351b]:
    • @​tanstack/query-core@​5.90.17

5.90.16

Patch Changes

  • fix(react-query): allow retryOnMount when throwOnError is function (#9338)

  • Updated dependencies [7f47906]:

    • @​tanstack/query-core@​5.90.16

5.90.15

Patch Changes

  • Updated dependencies [fccef79]:
    • @​tanstack/query-core@​5.90.15

... (truncated)

Commits
  • 08050cb ci: Version Packages (#10115)
  • c5def66 refactor(react-query/useQueries): remove unreachable 'willFetch' branch in su...
  • da2ff5a chore(vite.config): exclude 'tests' directory from coverage reports (#10084)
  • 2a592d2 test(react-query/suspense): add test cases for 'static' staleTime with number...
  • 7e3ea62 test(react-query/QueryResetErrorBoundary): relocate 'issue-9728' test and mig...
  • dee5d3e test(react-query/ssr): add 'useMutation' and 'useMutationState' tests for SSR...
  • 7ac4e20 ci: Version Packages (#10067)
  • 9ff3de7 Upgrade to Vitest v4 (#9862)
  • 0525ad1 ci: Version Packages (#10047)
  • 53fc74e fix(query-core): fix combine not updating when queries change with stable ref...
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by [GitHub Actions](https://www.npmjs.com/~GitHub Actions), a new releaser for @​tanstack/react-query since your current version.


Updates @types/node from 25.2.3 to 25.3.3

Commits

Updates axios from 1.13.5 to 1.13.6

Release notes

Sourced from axios's releases.

v1.13.6

This release focuses on platform compatibility, error handling improvements, and code quality maintenance.

⚠️ Important Changes

  • Breaking Changes: None identified in this release.
  • Action Required: Users targeting React Native should verify their integration, particularly if relying on specific Blob or FormData behaviours, as improvements have been made to support these objects.

🚀 New Features

  • React Native Blob Support: Axios now includes support for React Native Blob objects. Thanks to @​moh3n9595 for the initial implementation. (#5764)
  • Code Quality: Implemented prettier across the codebase and resolved associated formatting issues. (#7385)

🐛 Bug Fixes

  • Environment Compatibility:

    • Fixed module exports for React Native and Browserify environments. (#7386)
    • Added safe FormData detection for the WeChat Mini Program environment. (#7324)
  • Error Handling:

    • AxiosError.message is now correctly enumerable. (#7392)
    • AxiosError.from now correctly copies the status property from the source error, ensuring better error propagation. (#7403)

🔧 Maintenance & Chores

  • Dependencies: Updated the development_dependencies group (5 updates). (#7432)
  • Infrastructure: Migrated @​rollup/plugin-babel from v5.3.1 to v6.1.0. (#7424)
  • Documentation: Added missing JSDoc comments to utilities. (#7427)

🌟 New Contributors

We are thrilled to welcome our new contributors! Thank you for helping improve the project:

Full Changelog: v1.13.5...v1.13.6

Commits
  • 7108c88 chore(release): prepare release 1.13.6 (#7446)
  • 20a0ba3 refactor(deps): migrate @​rollup/plugin-babel from v5.3.1 to v6.1.0 (#7424)
  • 885b4af feat: support react native blob objects (#5764)
  • 00d97b9 docs(utils): add missing JSDoc comments (#7427)
  • 9712548 chore(deps-dev): bump the development_dependencies group across 1 directory w...
  • d51accb fix(core): copy status from source error in AxiosError.from (#7403)
  • 3e30bbf chore: fix publish to only run on v1 tags
  • 672491d fix: safe FormData detection for WeChat Mini Program (#7306) (#7324)
  • 822e3e4 fix: make AxiosError.message property enumerable (#7392)
  • ef3711d feat: implement prettier and fix all issues (#7385)
  • Additional commits viewable in compare view

Updates i18next from 25.8.13 to 25.8.14

Release notes

Sourced from i18next's releases.

v25.8.14

  • fix: getCleanedCode now replaces all underscores
Changelog

Sourced from i18next's changelog.

25.8.14

  • fix: getCleanedCode now replaces all underscores
Commits

Updates lucide-react from 0.554.0 to 0.576.0

Release notes

Sourced from lucide-react's releases.

Version 0.576.0

What's Changed

Full Changelog: lucide-icons/lucide@0.575.0...0.576.0

Version 0.575.0

What's Changed

karanhudia and others added 30 commits February 3, 2026 13:17
- Remove .slice(0, 10) limits in Backup and Schedule pages
- All tables now show full dataset with pagination
- Improve pagination toolbar styling with better spacing
- Increase toolbar height from 52px to 64px for better visual balance
- Add proper padding to select dropdown and toolbar elements
- Fix alignment of "Rows per page" label, dropdown, and page counter

Resolves issue where Backup and Schedule tabs were artificially limited
to 10 items despite backend supporting 200 items.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add table-layout: fixed to DataTable component
- Increase Status column width from 100px to 190px to accommodate "Completed with Warnings"
- Change Repository column from 30% to fixed 350px width
- Add maxWidth constraints to all columns (header and body cells)
- Add overflow and text-ellipsis handling for long content

Prevents table from resizing/shuffling when status text changes length.
All columns now maintain consistent width regardless of content.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Adjusted column widths to fit standard screen sizes without horizontal scroll:
- Job ID: 80px → 60px
- Repository: 350px → 250px
- Type: 140px → 120px
- Trigger: 90px → 70px
- Status: 190px → 180px
- Started: 180px → 160px
- Duration: 90px → 80px
- Actions: 140px → 130px

Total width for Activity page (all columns): ~1,050px
Total width for Backup/Schedule (no Type/Trigger): ~860px

Maintains fixed layout to prevent shifts while fitting on typical screens.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…back

- Add overflow: hidden, textOverflow: ellipsis, whiteSpace: nowrap to repository name Typography
- Remove wordBreak: break-word that was causing text to wrap to new line
- Add overflow: hidden to parent Box container
- Ensures long repository paths don't wrap and take extra line in table

When repository name is not found and path is used as display name,
it now shows ellipsis (...) instead of wrapping to a second line.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add tableId prop to DataTable and BackupJobsTable components
- Store rows per page setting in localStorage with key: table-rows-per-page-{tableId}
- Load saved preference on component mount with validation
- Save to localStorage whenever user changes rows per page
- Each tab has unique tableId: "activity", "backup", "schedule"

Users can now set different rows per page preferences for each tab,
and these preferences persist across browser sessions.

Example: Activity page can show 25 rows while Backup shows 10 rows.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Update script parameter issues: change is_secret to type field (text/password) and add encryption details

* Implement script parameters feature - backend

- Add database schema for script parameters and parameter_values
- Add encryption/decryption utilities for password-type parameters
- Add parameter parsing from {{PARAM}} syntax with type detection
- Add template rendering service with parameter substitution
- Update script library API endpoints to handle parameters
- Encrypt password-type parameter values in repository assignments
- Mask password values in API responses
- Integrate parameter rendering in script execution

Implements borg-ui-773, borg-ui-vcy, borg-ui-my3, borg-ui-sa3, borg-ui-3il, borg-ui-kkj, borg-ui-1ab

* Add parameter support to script test endpoint

- Add ScriptTestRequest schema with parameter_values field
- Update /scripts/{script_id}/test to accept and render parameter values
- Test values are not encrypted (plain text for testing)
- Renders template with test system variables

* Fix parameter checking in script assignment dialog

- Add hasParameters boolean check for better readability
- Add Array.isArray validation for parameters
- Add console logging to debug parameter detection
- Use non-null assertion operator for TypeScript

* working on scripts

* fix missing model

* chore: cleanup

* chore: cleanup

* merge main, remove duplicate onUpdate call

* revert: models.py

* fix models, add unit test for script params

---------

Co-authored-by: Jan Wiebe <janwiebe@janwie.be>
This commit addresses issues found in the script parameters feature (PR #245):

## UI Improvements
- Remove redundant auto-generated parameter descriptions
  - Description field now empty by default (users should add their own)
  - Fix weird text showing below parameter inputs (e.g., "i am var")
- Only show helper text when description is non-empty

## Code Quality
- Remove unused template rendering code from template_service.py
  - Scripts use bash-native ${PARAM} expansion via environment variables
  - Template substitution is unnecessary and was never called
  - Keep only get_system_variables() which is actually used
- Simplify service to focus on system variables only

## Security & Validation
- Add parameter value validation before encryption/storage
  - Maximum length validation (10,000 chars)
  - Integrated into both assign and update endpoints
- Add comprehensive comments explaining security model

## Migration
- Implement proper downgrade for migration 057
  - Detect SQLite version and use DROP COLUMN if available (3.35+)
  - Graceful fallback for older SQLite versions
- Better error handling and user feedback

## Documentation
- Add comprehensive script-parameters.md guide
  - Parameter syntax and naming conventions
  - Auto-detection of password types
  - System variables reference
  - Security best practices
  - Example scripts (MySQL, API, S3, webhooks)
  - Troubleshooting section

## Testing
- Add test_api_scripts_parameters.py with core tests
  - Password encryption verification
  - Parameter validation (max length)
  - Note: Some tests commented out pending API structure investigation

## Related
- Fixes issues found during review of PR #245
- Addresses the "weird text" bug reported by user

Co-authored-by: zjean <zjean@users.noreply.github.com>
- Remove confusing Type (T) icon from text parameters
- Keep only Lock icon for password parameters
- Filter out auto-generated descriptions that just reformat param names
  - Prevents showing redundant text like 'i am var' for I_AM_VAR parameter
  - Detects both plain and '(encrypted)' variants
- Only show helper text when user provides meaningful custom descriptions

This fixes the UI issues reported where parameters showed:
1. Unnecessary 'T' icon that didn't make sense
2. Redundant helper text below input (e.g., 'i am var' from 'I_AM_VAR')
Critical bug fix for script parameter execution failure.

## Bug
When executing scripts with parameters, execution failed with:
  ERROR: name 'repository_id' is not defined

## Root Cause
Line 269 in script_library_executor.py was trying to re-query the repository
using 'repository_id' variable which doesn't exist. The function already
receives 'repository' as a Repository object parameter.

This was introduced during merge conflict resolution in commit b2aa432.

## Fix
- Remove unnecessary repository re-query (line 269)
- Use repository.id instead of repository_id in get_system_variables()
- Repository object is already available from function parameter

## Testing
- All script parameter tests pass (12 tests)
- Scripts can now execute successfully with parameters

Fixes the error reported during backup script execution with parameters.
Restores the UI improvements that were accidentally lost during git reset.

## Changes

1. **Show raw parameter names in labels**
   - Before: I_AM_VAR displayed as 'I Am Var'
   - After: I_AM_VAR displayed as 'I_AM_VAR'
   - More accurate, easier to reference in scripts

2. **Enhanced auto-generated description filtering**
   - Case-insensitive detection of reformatted param names
   - Filters out: 'i am var', 'I Am Var', 'I Am Var (encrypted)'
   - Only shows meaningful user-provided descriptions

## UI Display
- Label: Shows actual parameter name (I_AM_VAR)
- Icon: Lock for passwords only (no Type icon for text)
- Helper text: Hidden when auto-generated/redundant

Fixes the 'I Am Var' display issue reported by user.
Fixes TypeScript linting errors in CI.

## Changes
- Replace 'any' with 'unknown' for query data
- Add proper type guards for array and object checks
- Use generic type T for job filtering
- Safely cast types after validation

## Errors Fixed
- Line 255: old: any → old: unknown
- Line 259: job: any → job with proper type cast
- Line 262: job: any → job with proper type

All frontend tests pass (886 tests).
The generate_description() function was changed to return empty strings
instead of auto-generated descriptions (to avoid showing redundant text
like 'Db Host' or 'Api Key (encrypted)' in the UI).

Updated tests to expect empty strings instead of formatted descriptions.

## Tests Fixed
- test_generate_description_text_param
- test_generate_description_password_param
- test_generate_description_api_key

All 27 script parameter tests now pass.
Borg returns exit code 1 for warnings (e.g., permission denied errors,
missing files) when the operation itself completed successfully. This
fix ensures jobs are marked as "completed_with_warnings" instead of
"failed" for these cases.

Changes:
- Updated all Borg operation services to handle exit code 1 and modern
  warning codes (100-127) as warnings instead of failures
- Services updated: backup, compact, check, prune, restore, delete_archive
- All 673 tests passed

Exit code handling:
- 0: Success (completed)
- 1 or 100-127: Warning (completed_with_warnings)
- Other codes: Error (failed)

Reference: https://borgbackup.readthedocs.io/en/stable/usage/general.html#return-codes

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Implemented new schedule creation/editing wizard:
- 5-step wizard (Basic Info, Schedule, Scripts, Maintenance, Review)
- Extracted reusable components: PruneSettingsInput, CronExpressionInput,
  ArchiveNameTemplateInput, ScriptSelectorSection
- Extracted schedule page sections: BackupHistorySection, RunningBackupsSection,
  ScheduledJobsTable, UpcomingJobsTable, DeleteScheduleDialog
- Added database migrations for schedule script parameters
- Removed "enable immediately" toggle (schedules always created enabled)
- Reduced spacing and verbosity in wizard steps for better UX
- Added comprehensive test coverage (78 new tests)
- Reduced Schedule.tsx from 2,071 to 806 lines

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add Borg UI logo with green circular background to README
- Restructure README header to match Pangolin design (logo + title + links)
- Simplify README: remove technical details, keep features and quick start
- Rewrite installation guide to be copy-paste ready and action-oriented
- Make Redis optional with clear inline comments in docker-compose examples
- Simplify cache.md for advanced users only
- Remove 590+ lines of redundant documentation

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Remove REDIS_PASSWORD from examples (doesn't work reliably)
- Document REDIS_URL as the working method for password-protected Redis
- Add external Redis connection section to installation guide
- Update cache.md to show REDIS_URL with password syntax

Fixes #246

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Extract all major UI elements from Archives.tsx into standalone,
testable, and reusable components to improve maintainability and
reduce code duplication.

Display Components:
- RepositorySelectorCard: Repository dropdown with loading states
- RepositoryStatsGrid: 5-card statistics grid (archives, space, compression, dedup)
- ArchiveCard: Individual archive card with View/Restore/Mount/Delete actions
- LastRestoreSection: Last restore job display with RestoreJobCard
- ArchivesList: Archives list with loading/empty state handling

Dialog Components:
- DeleteArchiveDialog: Delete confirmation with warning alerts
- MountArchiveDialog: Mount archive form with mount point configuration
- ArchiveContentsDialog: Interactive file browser with breadcrumb navigation

All components include comprehensive test coverage (72 total test cases).
This reduces Archives.tsx from 1,226 to 514 lines (58% reduction).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Fix vertical alignment using alignItems="baseline" instead of "center"
- Add "Duration:" prefix to duration display for clarity
- Hide duration when it's 0 sec or 0 min (avoids showing "0 sec")
- Use consistent body2 variant for all completed status text
- Add comprehensive tests for RestoreJobCard (26 test cases)
- Update LastRestoreSection with "View All Restores" button

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Restore functionality is now integrated into the Archives page with a
new RestoreWizard. The dedicated Restore tab is now optional and can
be toggled via beta settings.

Frontend changes:
- Add "Show Legacy Restore Tab" toggle in beta settings
- Dynamically build navigation menu based on show_restore_tab setting
- Integrate RestoreWizard into Archives page
- Add restore job tracking in Archives page
- Export restore wizard step components
- Update Layout to conditionally show Restore tab

Backend changes:
- Add show_restore_tab column to system_settings table
- Add migration 064_add_show_restore_tab.py
- Update SystemSettings model with show_restore_tab field
- Update settings API to handle show_restore_tab toggle
- Improve restore service exit code handling (distinguish failures from warnings)

The Restore tab is hidden by default, with restore functionality
available through Archives page. Users can enable the legacy tab in
Settings > Beta Features if preferred.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
karanhudia and others added 23 commits March 3, 2026 23:36
…scripts gaps closed

- 04-06-SUMMARY.md: plan execution documented
- STATE.md: position advanced to plan 6/6, session updated, decisions recorded
- ROADMAP.md: phase 04 plan progress updated to 6 plans / 5 summaries
…-06 truth #4 satisfied

- 13 raw English message response fields replaced with backend.success.ssh.* locale keys
- 7 new locale keys added to en.json, es.json, de.json
- msg_parts dynamic join at delete endpoint dropped for static sshKeyDeleted key
- Internal connection test helper returns locale key enabling conditional caller logic
… closure phases 5-6 scoped

- v1.0-MILESTONE-AUDIT.md: second audit run; updates previous audit with new
  integration checker findings (RestoreJobCard raw render, CI wiring gap,
  scheduledJobStartedMulti params, ssh_keys connection.error_message)
- REQUIREMENTS.md: revert SVC-01/SVC-02 from [x] to [ ]; reassign to Phase 6
  (Phase 4 VERIFICATION had false positive — primary borg error path and
  restore failure paths were not migrated)
- ROADMAP.md: expand Phase 5 success criteria to include CI wiring into
  package.json and tests.yml (QUAL-02); expand Phase 6 to include
  RestoreJobCard.tsx inline display fix (SVC-02 E2E); update execution order

Unsatisfied: LOC-02, LOC-03, LOC-04, QUAL-02 (Phase 5), SVC-01, SVC-02 (Phase 6)
Working tree has Phase 5+6 fixes uncommitted — ready to execute phases.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Adds "check:locales": "node ../scripts/check-locale-parity.js" to scripts section
- Inserted after test:coverage and before release entries
- Path ../scripts/ resolves correctly from frontend/ (npm script cwd)
- Inserts "Check locale key parity" step after Install dependencies
- Step runs: cd frontend && npm run check:locales
- Positioned before TypeScript type check for fast early failure
- Enforces LOC-04 key parity on every CI run
…mitted en.json

- Strip 17 Phase 6 keys (12 backend + 5 UI) from es.json
- Preserve all real Spanish translations for 211 backend.* keys
- Key set now exactly matches committed en.json (2047 keys)
- LOC-02 satisfied: Spanish users see translated backend messages
- File was untracked (??); must be committed so CI checkouts include it
- Without this commit, npm run check:locales would fail with module-not-found
- Script uses Node.js built-ins only (fs, path) — no external deps
- Satisfies QUAL-02: locale parity enforced automatically on every push
…mitted en.json

- Strip 17 Phase 6 keys (12 backend + 5 UI) from de.json
- Preserve all real German translations for 211 backend.* keys
- Fix parity: archiveBrowser.failedToLoadContents now has German value
- Key set now exactly matches committed en.json (2047 keys)
- LOC-03 satisfied: German users see translated backend messages
[Rule 2 - Missing critical functionality] The check:locales script caught
pre-existing drift: en.json had 17 keys not present in es.json or de.json.
English placeholder values added per project pattern (Phase 5 real translations).

Missing keys fixed:
- repositorySelectorCard.empty
- multiRepositorySelector.{title,selectAll,deselectAll,selected}
- backend.errors.backup.{cancelledByUser,cancelledByUserProcessNotFound}
- backend.errors.borg.{additionalErrors,exitCodeError,unknownError}
- backend.errors.service.{postBackupHooksAlsoFailed,restoreFailed,
  restoreFailedExitCode,restoreFailedZeroFiles,restoreFailedZeroFilesNoOutput,
  restoreFailedZeroFilesPathNotFound,restoreFailedZeroFilesPermission}

cd frontend && npm run check:locales now exits 0 (2064 keys, all in parity)
… satisfied

- 05-01-SUMMARY.md: documents 2047-key parity achieved in es.json and de.json
- STATE.md: updated to Phase 5 Plan 1 complete, decisions and session info updated
- ROADMAP.md: Phase 5 marked complete (1/1 plans)
- REQUIREMENTS.md: LOC-02 and LOC-03 marked complete
…QUAL-02 satisfied

- 05-02-SUMMARY.md created: check:locales script wired into npm and GitHub Actions CI
- STATE.md updated: phase 5 plan 2 complete, decision logged, session updated
- ROADMAP.md updated: phase 05 shows 2/2 plans with Summary status Complete
- REQUIREMENTS.md updated: LOC-04 and QUAL-02 marked complete
….* keys in es.json

- backend.errors.backup.cancelledByUser: real Spanish translation
- backend.errors.backup.cancelledByUserProcessNotFound: real Spanish translation
- backend.errors.borg.additionalErrors/exitCodeError/unknownError: real Spanish translations
- backend.errors.service.postBackupHooksAlsoFailed/restoreFailed/restoreFailedExitCode/restoreFailedZeroFiles*/restoreFailedZeroFilesNoOutput/restoreFailedZeroFilesPathNotFound/restoreFailedZeroFilesPermission: real Spanish translations
- Key count unchanged at 2064; LOC-02 satisfied
…* keys in de.json

- backend.errors.backup.cancelledByUser: real German translation
- backend.errors.backup.cancelledByUserProcessNotFound: real German translation
- backend.errors.borg.additionalErrors/exitCodeError/unknownError: real German translations
- backend.errors.service.postBackupHooksAlsoFailed/restoreFailed/restoreFailedExitCode/restoreFailedZeroFiles/restoreFailedZeroFilesNoOutput/restoreFailedZeroFilesPathNotFound/restoreFailedZeroFilesPermission: real German translations
- Key count unchanged at 2064; LOC-03 satisfied
… — LOC-02 and LOC-03 satisfied

- 05-03-SUMMARY.md created: 2 tasks, 2 files modified, all 12 backend.* placeholder keys replaced
- STATE.md updated: session continuity, decision logged, metrics recorded
- ROADMAP.md updated: Phase 5 now shows 3/3 plans complete, status Complete
- Replace: stderr_output if stderr_output else json.dumps({...restoreFailedExitCode...})
- With: json.dumps({"key": "backend.errors.service.restoreFailedExitCode", "params": {"exitCode": process.returncode}})
- stderr_output still written to job.logs on line 453 — no debug info lost
- SVC-02 satisfied: all error_message writes in restore_service.py now use json.dumps key format
…estoreJobCard

- Add test: failed job with JSON key error_message should not render raw JSON
- Add test: completed_with_warnings job with JSON key error_message should not render raw JSON
- 26 existing tests pass, 2 new tests fail (RED phase)
…d Alert blocks

- Add translateBackendKey import from utils/translateBackendKey
- Both completed_with_warnings and failed Alert blocks now split error_message
  on newlines and translate each line via translateBackendKey
- Add sx={{ whiteSpace: 'pre-wrap' }} to Typography for multi-line rendering
- Raw English strings pass through unchanged (Shape 4 of translateBackendKey)
- All 28 RestoreJobCard tests pass
…-01 and SVC-02 satisfied

- 06-01-SUMMARY.md created with SVC-01 grep evidence and SVC-02 before/after
- STATE.md updated: current position to Phase 6/Plan 1, decisions added, session updated
- ROADMAP.md updated: phase 6 plan progress (1 SUMMARY of 2 plans)
- REQUIREMENTS.md: SVC-01 and SVC-02 marked complete

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…C-02 closed

- 06-02-SUMMARY.md: TDD execution, both tasks committed, all 1364 frontend tests pass
- STATE.md: decision and metric recorded for plan 02
- ROADMAP.md: phase 6 progress updated to 2/2 plans complete
…paths to locale keys

- borg_errors.py: refactor format_error_message() to return json.dumps locale key format; add msgid→locale key mapping for 14 known borg error IDs
- backup.py: cancel endpoint now writes JSON key strings to job.error_message (cancelledByUser, cancelledByUserProcessNotFound)
- backup_service.py: 3 remaining raw English strings replaced (additionalErrors, postBackupHooksAlsoFailed, unknownError exception fallback)

Completes SVC-01: all error_message DB writes in backup_service.py use json.dumps key format.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Delete REQUIREMENTS.md (preserved in .planning/milestones/v1.0/)
- Delete v1.0-MILESTONE-AUDIT.md (preserved in .planning/milestones/v1.0/)
- Delete phase 01-06 PLAN and SUMMARY files (all preserved in milestones/)
- Arrow function parens: line => to (line) => across 5 files
- Multi-line chaining reformatted per Prettier config
- No logic changes — cosmetic only
…ith 22 updates

Bumps the frontend-minor-patch group with 20 updates in the /frontend directory:

| Package | From | To |
| --- | --- | --- |
| [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) | `7.3.5` | `7.3.8` |
| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.90.10` | `5.90.21` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.2.3` | `25.3.3` |
| [axios](https://github.com/axios/axios) | `1.13.5` | `1.13.6` |
| [i18next](https://github.com/i18next/i18next) | `25.8.13` | `25.8.14` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.554.0` | `0.576.0` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.66.1` | `7.71.2` |
| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.13.0` | `7.13.1` |
| [recharts](https://github.com/recharts/recharts) | `3.5.0` | `3.7.0` |
| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.4.0` | `3.5.0` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.48.0` | `8.56.1` |
| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `5.1.1` | `5.1.4` |
| [autoprefixer](https://github.com/postcss/autoprefixer) | `10.4.22` | `10.4.27` |
| [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) | `0.4.24` | `0.5.2` |
| [globals](https://github.com/sindresorhus/globals) | `17.1.0` | `17.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.7` | `20.8.3` |
| [lint-staged](https://github.com/lint-staged/lint-staged) | `16.2.7` | `16.3.2` |
| [postcss](https://github.com/postcss/postcss) | `8.5.6` | `8.5.8` |
| [prettier](https://github.com/prettier/prettier) | `3.6.2` | `3.8.1` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.2.4` | `7.3.1` |



Updates `@mui/icons-material` from 7.3.5 to 7.3.8
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.8/packages/mui-icons-material)

Updates `@mui/material` from 7.3.5 to 7.3.8
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.8/packages/mui-material)

Updates `@tanstack/react-query` from 5.90.10 to 5.90.21
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.90.21/packages/react-query)

Updates `@types/node` from 25.2.3 to 25.3.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `axios` from 1.13.5 to 1.13.6
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.13.5...v1.13.6)

Updates `i18next` from 25.8.13 to 25.8.14
- [Release notes](https://github.com/i18next/i18next/releases)
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md)
- [Commits](i18next/i18next@v25.8.13...v25.8.14)

Updates `lucide-react` from 0.554.0 to 0.576.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.576.0/packages/lucide-react)

Updates `react-hook-form` from 7.66.1 to 7.71.2
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](react-hook-form/react-hook-form@v7.66.1...v7.71.2)

Updates `react-router-dom` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.1/packages/react-router-dom)

Updates `recharts` from 3.5.0 to 3.7.0
- [Release notes](https://github.com/recharts/recharts/releases)
- [Changelog](https://github.com/recharts/recharts/blob/main/CHANGELOG.md)
- [Commits](recharts/recharts@v3.5.0...v3.7.0)

Updates `tailwind-merge` from 3.4.0 to 3.5.0
- [Release notes](https://github.com/dcastil/tailwind-merge/releases)
- [Commits](dcastil/tailwind-merge@v3.4.0...v3.5.0)

Updates `@typescript-eslint/eslint-plugin` from 8.48.0 to 8.56.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.56.1/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.48.0 to 8.56.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.56.1/packages/parser)

Updates `@vitejs/plugin-react` from 5.1.1 to 5.1.4
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@5.1.4/packages/plugin-react)

Updates `autoprefixer` from 10.4.22 to 10.4.27
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](postcss/autoprefixer@10.4.22...10.4.27)

Updates `eslint-plugin-react-refresh` from 0.4.24 to 0.5.2
- [Release notes](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/releases)
- [Changelog](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/main/CHANGELOG.md)
- [Commits](ArnaudBarre/eslint-plugin-react-refresh@v0.4.24...v0.5.2)

Updates `globals` from 17.1.0 to 17.4.0
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](sindresorhus/globals@v17.1.0...v17.4.0)

Updates `happy-dom` from 20.3.7 to 20.8.3
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.7...v20.8.3)

Updates `lint-staged` from 16.2.7 to 16.3.2
- [Release notes](https://github.com/lint-staged/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md)
- [Commits](lint-staged/lint-staged@v16.2.7...v16.3.2)

Updates `postcss` from 8.5.6 to 8.5.8
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.5.6...8.5.8)

Updates `prettier` from 3.6.2 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.6.2...3.8.1)

Updates `vite` from 7.2.4 to 7.3.1
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.3.1/packages/vite)

---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.3.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-minor-patch
- dependency-name: "@mui/material"
  dependency-version: 7.3.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-minor-patch
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.90.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-minor-patch
- dependency-name: "@types/node"
  dependency-version: 25.3.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: axios
  dependency-version: 1.13.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-minor-patch
- dependency-name: i18next
  dependency-version: 25.8.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-minor-patch
- dependency-name: lucide-react
  dependency-version: 0.576.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: react-hook-form
  dependency-version: 7.71.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: react-router-dom
  dependency-version: 7.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-minor-patch
- dependency-name: recharts
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: tailwind-merge
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.56.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.56.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 5.1.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-minor-patch
- dependency-name: autoprefixer
  dependency-version: 10.4.27
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-minor-patch
- dependency-name: eslint-plugin-react-refresh
  dependency-version: 0.5.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: globals
  dependency-version: 17.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: happy-dom
  dependency-version: 20.8.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: lint-staged
  dependency-version: 16.3.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: postcss
  dependency-version: 8.5.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-minor-patch
- dependency-name: prettier
  dependency-version: 3.8.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
- dependency-name: vite
  dependency-version: 7.3.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Mar 4, 2026

Labels

The following labels could not be found: automated, frontend. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Mar 4, 2026
@github-actions
Copy link

github-actions bot commented Mar 4, 2026

🔒 Security Scan Results

Commit: fdb3a28

Check Status
Frontend (npm audit) ✅ PASSED
Backend (pip-audit) ✅ PASSED
Filesystem (Trivy) ✅ PASSED

📊 See workflow artifacts for detailed reports.

@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Mar 9, 2026

Looks like these dependencies are updatable in another way, so this is no longer needed.

@dependabot dependabot bot closed this Mar 9, 2026
@dependabot dependabot bot deleted the dependabot/npm_and_yarn/frontend/frontend-minor-patch-b7c7c2457f branch March 9, 2026 08:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants