Skip to content

build(deps-dev): bump js-yaml from 4.3.1 to 4.3.2 in /ui-web - #385

Merged
0xKT merged 2 commits into
mainfrom
dependabot/npm_and_yarn/ui-web/js-yaml-4.3.2
Sep 16, 2026
Merged

0xKT merged 2 commits into
mainfrom
dependabot/npm_and_yarn/ui-web/js-yaml-4.3.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 11, 2026

Copy link
Copy Markdown
Contributor

Bumps js-yaml from 4.3.1 to 4.3.2.

Changelog

Sourced from js-yaml's changelog.

4.3.2 - 2026-08-26

Changed

  • [backport] Hard-limit merge sequence size to 100.

Security

  • [backport] Count empty mappings in merge sequences toward maxTotalMergeKeys to limit CPU usage, #797.
Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.3.1 to 4.3.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/4.3.2/CHANGELOG.md)
- [Commits](nodeca/js-yaml@4.3.1...4.3.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Sep 11, 2026
0xKT added a commit that referenced this pull request Sep 16, 2026
…441)

## Summary

Two dependency-bump PRs (#385, #387) cannot pass commit lint, and the
four
open dependabot PRs do not agree with the twelve already on main about
what a
dependency bump is called. This fixes both, on the two sides that own
them.

**The scope enum lost a scope it was already using.** `scope-enum`
became
enforced on 2026-09-05 (8f6ef4c) with a literal `deps` entry. But
`chore(deps-dev)` had merged to main on 2026-06-30 (b3959c9, #24), two
months
earlier. The enum swept in the sibling and missed this one, so every
dependabot
dev-dependency PR fails a gate for using a scope the repo had already
accepted.
`deps-dev` is restored to the enum; it is not a new scope.

**Dependabot guesses its own prefix, and it has drifted.** Nothing
pinned it, so
it infers one from recent history. The 12 bumps merged so far are
`chore(deps*)`;
the 4 open ones are `build(deps*)`. That split means `git log --grep`
needs two
prefixes to find dependency work, and it will move again. Every
ecosystem now
pins `prefix: "build"` with `include: "scope"`, which is the documented
way to
get `build(deps)` / `build(deps-dev)`. `build` is what AGENTS.md section
3.1
defines for external dependencies.

**Two npm trees had no entry at all.** The repo has five npm lockfiles;
dependabot.yml configured three. `/ui-web` and
`/ui-tui/packages/hermes-ink` were
missing, and both have produced real dependabot PRs (#385 is a `/ui-web`
PR right
now, #57 was a hermes-ink one). Security updates reach them through the
dependency graph regardless of this file, so they were inheriting none
of the
labels, grouping or commit-message settings the other trees get. Adding
them is
what makes the prefix fix actually cover every tree rather than three of
five.

**Neither fix had a gate behind it, so there is one now.** Both files
are edited
by hand, neither imports the other, and the drift they just had stayed
invisible
until a person read a CI log. `tests/test_dependabot_scope_canon.py`
pins six
things: every ecosystem pins its prefix rather than letting dependabot
infer one,
the pinned prefixes agree with each other, every scope the config will
emit is in
the enum, scopes nobody declared are still rejected, every lockfile
tracked in the
tree has an entry, and a repo that has workflows has an ecosystem for
them. It reads the enum
by evaluating `commitlint.config.cjs` with node instead of matching its
text,
anchored on a scope that cannot move so a broken extraction fails loudly
rather
than satisfying every membership assertion.

What this does not fix: dependabot PR bodies quote upstream release
notes
verbatim, which carry emoji and em-dashes, so they still fail the ASCII
gate in
`scripts/check_pr_body.py`. That gate is correct - the PR body becomes
the squash
commit body - and the body is rewritten by hand per PR. Only the scope
half is
automated here.

## Type

- [ ] Fix
- [ ] Feature
- [ ] Docs
- [x] CI / tooling
- [ ] Refactor
- [ ] Other

## Verification

Ran in a clean worktree cut from `origin/main`:

```
$ uv run pytest tests/test_dependabot_scope_canon.py \
      tests/test_commit_lint.py tests/test_readme_scope_canon.py -q
19 passed in 2.65s

$ uv run pre-commit run --files .github/dependabot.yml commitlint.config.cjs
check yaml ... Passed   (all hooks Passed or Skipped, none Failed)

$ npx commitlint --from origin/main --to HEAD --config commitlint.config.cjs
(no output, exit 0)

$ PYTHONPATH=. uv run python scripts/check_commit_messages.py origin/main..HEAD
(no output, exit 0)
```

Each of the four open dependabot subjects, and its prospective squash
header,
piped through the real commitlint with this config. Before the change:

```
FAIL  build(deps-dev): bump the npm-root-security group across 1 directory with 2 updates
PASS  build(deps): bump the tui-security group across 1 directory with 6 updates
```

After:

```
PASS  build(deps-dev): bump the npm-root-security group across 1 directory with 2 updates
PASS  build(deps-dev): bump js-yaml from 4.3.1 to 4.3.2 in /ui-web
PASS  build(deps): bump the bridge-security group across 1 directory with 2 updates
PASS  build(deps): bump the tui-security group across 1 directory with 6 updates
PASS  build(deps-dev): bump the npm-root-security group across 1 directory with 2 updates (#387)
PASS  build(deps-dev): bump js-yaml from 4.3.1 to 4.3.2 in /ui-web (#385)
FAIL  build(nonsense-scope): bump something
FAIL  build(deps-devv): bump something
FAIL  build(deps-dev): Bump something with a capital
```

The last three are the point: the enum still rejects scopes it should
reject, so
this widens it by exactly one entry rather than loosening it.

Each assertion in the new test was then checked against a mutant that
must fail
it, because a config test that only reads the config it was written
against
proves nothing:

```
KILLED  drop deps-dev from the enum                -> 1 failed, 5 passed
KILLED  let the enum accept a typo scope           -> 1 failed, 5 passed
KILLED  empty the enum entirely                    -> 2 failed, 4 passed
KILLED  drop the /ui-web entry                     -> 1 failed, 5 passed
KILLED  split the ecosystems across two types      -> 1 failed, 5 passed
KILLED  drop the github-actions ecosystem          -> 1 failed, 5 passed
KILLED  let one ecosystem guess its prefix again   -> 1 failed, 5 passed
```

The dependabot.yml edit was checked structurally, not by eye: both
versions
parsed, and every pre-existing entry is identical apart from the added
`commit-message` block, no entry was dropped, group names stay unique,
and the
npm directories now equal the set of npm lockfiles tracked in the repo.

- [x] Relevant tests pass locally
- [x] Relevant lint / type checks pass locally
- [ ] User-facing docs or screenshots are updated when needed

## Risk

Behaviour changes, all in tooling:

- One more scope is legal. `feat(deps-dev): ...` also becomes legal,
because
commitlint cannot tie a scope to a type. `deps` already had that
property; this
  does not introduce it.
- Future dependabot commits and PR titles are pinned to `build(deps)` /
`build(deps-dev)` instead of whatever it infers. Existing open PRs
already use
  those, so nothing needs rewriting.
- `/ui-web` and `/ui-tui/packages/hermes-ink` security updates will now
be
grouped and labelled like the other trees rather than arriving
unconfigured.
`open-pull-requests-limit: 0` matches the other entries, so no
version-update
  PRs are enabled by this.
- The prefix pin cannot be verified until the next advisory;
dependabot's
behaviour here is documented but not observable from a local run. If it
turns
  out wrong, the enum change alone still unblocks the open PRs.

Rollback: revert the commits. Nothing depends on either file at runtime.

- [x] Security impact considered
- [x] Backward compatibility considered
- [x] Rollback path is clear for risky changes

## Related Issues

N/A. Unblocks #385 and #387, which fail `scope-enum` today.

---------

Co-authored-by: Claude (claude-opus-5) <noreply@anthropic.com>
@0xKT

0xKT commented Sep 16, 2026

Copy link
Copy Markdown
Member

@dependabot rebase

@dependabot @github

dependabot Bot commented on behalf of github Sep 16, 2026

Copy link
Copy Markdown
Contributor Author

The dependabot.yml entry that created this PR has been deleted so this PR can't be rebased. Please close the PR so Dependabot can create a new one with the current dependabot.yml.

@0xKT 0xKT closed this Sep 16, 2026
@dependabot @github

dependabot Bot commented on behalf of github Sep 16, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/ui-web/js-yaml-4.3.2 branch September 16, 2026 13:30
@0xKT
0xKT restored the dependabot/npm_and_yarn/ui-web/js-yaml-4.3.2 branch September 16, 2026 13:36
@0xKT 0xKT reopened this Sep 16, 2026
@0xKT
0xKT merged commit 3e13658 into main Sep 16, 2026
32 of 33 checks passed
@0xKT
0xKT deleted the dependabot/npm_and_yarn/ui-web/js-yaml-4.3.2 branch September 16, 2026 13:36
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