Skip to content

chore(deps): bump archiver from 7.0.1 to 8.0.0 - #125

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/archiver-8.0.0
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/archiver-8.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github May 8, 2026

Copy link
Copy Markdown
Contributor

Bumps archiver from 7.0.1 to 8.0.0.

Release notes

Sourced from archiver's releases.

8.0.0

What’s changed

Breaking changes

Maintenance

Documentation

Dependency updates

... (truncated)

Changelog

Sourced from archiver's changelog.

Changelog

8.0.0 - May 8, 2026Diff

7.0.1 - March 9, 2024Diff

7.0.0 - February 28, 2024Diff

6.0.2 - February 27, 2024Diff

6.0.1 - September 3, 2023Diff

6.0.0 - August 17, 2023Diff

Release Archive

Commits
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for archiver since your current version.


Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels May 8, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/archiver-8.0.0 branch 2 times, most recently from e61d158 to b12b4a7 Compare May 9, 2026 21:13
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/archiver-8.0.0 branch 3 times, most recently from dc9519c to 1797835 Compare May 17, 2026 10:00
Bumps [archiver](https://github.com/archiverjs/node-archiver) from 7.0.1 to 8.0.0.
- [Release notes](https://github.com/archiverjs/node-archiver/releases)
- [Changelog](https://github.com/archiverjs/node-archiver/blob/master/CHANGELOG.md)
- [Commits](archiverjs/node-archiver@7.0.1...8.0.0)

---
updated-dependencies:
- dependency-name: archiver
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@fo0

fo0 commented Jun 26, 2026

Copy link
Copy Markdown
Owner

·@·d·ependabot r·ecreate


Generated by Claude Code

fo0 added a commit that referenced this pull request Jul 27, 2026
* fix(validation): reject duplicate filenames within a stash

Raw-file lookup resolves a filename to exactly one row, so a stash holding
two files with the same name was ambiguous — only the first match was ever
reachable. The editor blocked duplicates client-side, but REST and MCP
callers could still create such a stash.

Adds a shared hasUniqueFilenames() refinement applied symmetrically to
CreateStashSchema / UpdateStashSchema (REST) and the create_stash /
update_stash file arrays (MCP). Comparison is on trimmed filenames so the
visually identical "a.txt" / "a.txt " pair is caught too; case is left
significant because raw lookup matches exactly.

Closes BACKLOG #147

* fix(editor): stop retyping untouched metadata string values on save

entriesToMetadata() ran every value through JSON.parse, so a string
metadata value that happens to look like JSON silently changed type on the
next save even when the user never opened the row: "true" became a boolean,
"123" a number, "null" a null — and the unconditional trim ate intentional
padding.

metadataToEntries() now records the source string in MetadataEntry.original
for values that were already strings. entriesToMetadata() compares against
it and writes such rows back verbatim; edited rows and rows the user added
keep the parse-on-save behaviour, where typing JSON is deliberate.

Closes BACKLOG #135

* fix(search): avoid mangled highlights when lowercasing changes length

splitHighlight computed match indices on text.toLowerCase() and then applied
them to the original string. Lowercase mappings are not always 1:1 — 'İ'
(U+0130) folds to two code units — so a single such character shifted every
following highlight boundary and the rendered segments no longer reassembled
to the source text.

Lowercase mappings only ever grow, so equal lengths guarantee 1:1 index
alignment. When the lengths differ we can no longer trust the indices, so
return a single unhighlighted segment instead of slicing at wrong offsets.

Closes BACKLOG #137

* fix(graph): re-scale canvases when devicePixelRatio changes

Both graph canvases size their bitmap by devicePixelRatio and only re-run
that on a ResizeObserver hit. Moving the window to a monitor with a
different scale factor (or a browser zoom step) changes DPR without changing
layout size, so the observer stayed silent: the bitmap kept the old scale
and every pointer hit test was offset until an unrelated resize happened.

Adds a shared watchDevicePixelRatio() helper. There is no DPR change event,
so it arms a '(resolution: Ndppx)' media query — which stops matching at the
moment the ratio changes — and re-arms against the new ratio on every hit.
SSR-safe, cleaned up with the ResizeObserver.

Closes BACKLOG #145

* fix(mermaid): cap persisted zoom levels so deleted stashes stop leaking keys

Every Mermaid viewer persisted its zoom level under a per-stash
clawstash_mermaid_zoom_* localStorage key, and nothing ever removed those
keys — deleting a stash left its entry behind forever, so a long-lived
profile accumulated them without bound.

Extracts the storage helpers from MermaidDiagram into src/utils/mermaid-zoom.ts
and enforces an LRU cap of 50 entries on every write. Values are now stored
as "<scale>|<writtenAtMs>" to make recency comparable; legacy bare-scale
entries still parse and sort as oldest, so they are evicted first.

Closes BACKLOG #146

* perf(graph): throttle the highlight pulse instead of holding a 60fps loop

A persistent 'Locate' highlight forced needsFrame on every tick, so the rAF
loop never settled: the tag graph kept requesting 60 frames per second for
as long as a node stayed highlighted, even with the layout fully at rest.

The pulse rides a ~1.9s sine, so it only needs a handful of frames per
second. Once nothing else needs animating, the next pulse frame is scheduled
on a 100ms timer instead. Any interaction cancels the pending timer and
resumes at full rate immediately, and the timer is cleared on unmount.

Closes BACKLOG #144

* fix(a11y): keep non-option rows out of the search listboxes

The result-count status row and the 'Recently viewed' heading were rendered
as children of role="listbox". That content model only permits option (and
grouping) children, so assistive tech could announce the status row as one
of the results or mis-report the option count — the count row additionally
carried aria-live inside the list.

Both rows now render as siblings above their listbox. Ids, aria-controls
wiring, activedescendant and the scroll container (listRef) are unchanged;
the headings simply no longer scroll away with the list.

Closes BACKLOG #134

* fix(editor): commit a half-typed metadata key instead of dropping it

The tag combobox flushes a typed-but-unconfirmed value on blur, so clicking
Save commits it. The metadata key input had no such flush: a key typed
without pressing Enter or clicking Add was silently discarded on save, with
no hint that anything was lost.

Adds the same blur commit, and mirrors TagCombobox's guard by suppressing
blur (onMouseDown preventDefault) on every button inside the editor — Add,
the key suggestions, row remove and show more/less — so none of them can
double-add through the blur path.

Closes BACKLOG #148

* feat(graph): let the ignored-tags chip clear the ignore list

Tags can be ignored from any stash popup, but the only way back was the
'Reset analysis' button — which is hidden unless an analysis is active and
also wipes the analysis along with the ignore list. The '\''N tags ignored'\''
chip that reported the state was inert.

The chip is now a button that re-includes every ignored tag, with a 'clear'
affordance, hover/focus styling and an aria-label.

Closes BACKLOG #143

* chore(backlog): cleanup obsolete and completed entries

Implemented this sweep (moved to Done, dated 2026-07-27):
- #147 duplicate filenames rejected on REST + MCP
- #135 untouched metadata string values no longer retyped on save
- #137 splitHighlight bails out when lowercasing changes length
- #145 canvases re-scale on devicePixelRatio change
- #146 persisted Mermaid zoom levels capped (LRU, 50 entries)
- #144 highlight pulse throttled off the 60fps rAF loop
- #134 non-option rows moved out of the search listboxes
- #148 half-typed metadata key committed on blur
- #143 ignored-tags chip clears the ignore list

Removed as obsolete (duplicates, superseded by newer, broader entries):
- #123 focus trap / focus restore for SearchOverlay + KeyboardShortcutsHelp
  — fully covered by #131 (2026-07-26), which lists the same two modals plus
  the Mermaid fullscreen and asks for the same shared trap + restore helper.
- #125 incomplete ARIA tabs pattern in StashViewer — fully covered by #133
  (2026-07-26), which covers StashViewer, ApiManager and BackupSection and
  already names the missing aria-controls/tabpanel wiring and the stray
  "Analyze" button inside the tablist.

All other entries left untouched.

---------

Co-authored-by: Claude <noreply@anthropic.com>
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 javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant