Skip to content

chore(deps): bump qs from 6.15.3 to 6.16.0 in /apps/web-console - #1714

Merged
sakibsadmanshajib merged 1 commit into
mainfrom
dependabot/npm_and_yarn/apps/web-console/qs-6.16.0
Sep 2, 2026
Merged

sakibsadmanshajib merged 1 commit into
mainfrom
dependabot/npm_and_yarn/apps/web-console/qs-6.16.0

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Bumps qs from 6.15.3 to 6.16.0.

Changelog

Sourced from qs's changelog.

6.16.0

  • [New] stringify: add a depth option to bound recursion depth (default Infinity)
  • [Fix] stringify: serialize Date values when a filter is provided
  • [Fix] parse: enforce arrayLimit on comma groups under []= when throwOnLimitExceeded is set
  • [Fix] parse: flatten a collection appended to an overflowed array (#571)
  • [Fix] utils: isBuffer: do not invoke a non-callable constructor.isBuffer
  • [Fix] stringify: do not let allowEmptyArrays skip cycle detection (or drop own keys) on an empty array with own properties
  • [Fix] stringify: encode dots in a top-level key with a primitive value when encodeDotInKeys is set (#562)
  • [Docs] threat model: clarify stringify deep-nesting DoS is caller-bounded
  • [Docs] clarify arrayLimit is a representation threshold, not an element-count cap
  • [Tests] parse: remove a test that pinned []= comma groups escaping arrayLimit
  • [Tests] stringify: pin current encodeDotInKeys separator-dot behavior
  • [Dev Deps] update @ljharb/eslint-config, eslint
  • [Dev Deps] update eslint, evalmd
Commits
  • bb9379e v6.16.0
  • 62fd254 [Fix] stringify: serialize Date values when a filter is provided
  • 8859c37 [Fix] parse: enforce arrayLimit on comma groups under []= when `throwOn...
  • 8079adc [Tests] parse: remove a test that pinned []= comma groups escaping `array...
  • d56f48c [Fix] parse: flatten a collection appended to an overflowed array
  • e83d321 [Fix] utils: isBuffer: do not invoke a non-callable constructor.isBuffer
  • 7e87a07 [Dev Deps] update @ljharb/eslint-config, eslint
  • 9a76af2 [Dev Deps] update eslint, evalmd
  • 3a890d4 [Dev Deps] update eslint, evalmd
  • b433a9b [Fix] stringify: do not let allowEmptyArrays skip cycle detection (or dro...
  • Additional commits viewable in compare view

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 [qs](https://github.com/ljharb/qs) from 6.15.3 to 6.16.0.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](ljharb/qs@v6.15.3...v6.16.0)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.16.0
  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 2, 2026
@sakibsadmanshajib sakibsadmanshajib added internal No customer visible effect. priority:low Correct but not urgent. labels Sep 2, 2026
@sakibsadmanshajib

Copy link
Copy Markdown
Owner

Triage recommendation: safe to merge, low risk, no rush. This is a lockfile only patch bump of qs inside apps/web-console with no package.json change and no runtime surface of ours touching it directly. Merge whenever the queue is quiet, or batch it with the other web-console dependency bumps after the demo.

@sakibsadmanshajib
sakibsadmanshajib merged commit 846486b into main Sep 2, 2026
102 of 126 checks passed
@sakibsadmanshajib
sakibsadmanshajib deleted the dependabot/npm_and_yarn/apps/web-console/qs-6.16.0 branch September 2, 2026 19:26
sakibsadmanshajib added a commit that referenced this pull request Sep 2, 2026
#1727)

Closes #1726

Implements the tracking discipline the owner asked for on 2026-09-02:
pull requests, milestones, the Kanban board and the labels are not being
maintained, so this writes the rule down and then wires it so it is
enforced rather than aspirational.

## The rule

`.claude/rules/tracking-discipline.md`, in the voice of its neighbours
in that directory, terse and imperative with each reason given once:

- **An issue exists before a fix does.** Every change starts from a
GitHub issue, including a one line fix noticed while doing something
else. A defect discovered mid task gets filed, not folded silently into
an unrelated pull request. The body links its issue with `Closes #N`, or
`Refs #N` when it delivers only part of it. Never `Closes` an issue
whose acceptance criteria are not all met, because an issue closed early
is how work is lost.
- **Exactly one priority label**, using the four that already exist in
the repository: `priority:critical` for a demo blocker or live outage,
`priority:high` for needed before the demo, `priority:medium` for real
work to schedule, `priority:low` for correct but not urgent. The retired
`priority:P0` through `priority:P3` set does not satisfy it, and is
rejected by name so it gets corrected rather than quietly counted.
- **At least one area label** from `demo-surface`, `money-path`,
`internal`. Their definitions live on the labels themselves and are
deliberately not copied into the rule.
- **A scheduled issue carries a milestone**, from the four open ones. No
milestone means unscheduled, which is legitimate; a critical or high
with no milestone is a tracking failure, because it claims urgency and
names no release that carries it.
- **Pull requests wear the labels of the issue they close**, so the
board reads the same from either side.
- **Priority is judged against the demo spine**: chat, embeddings, voice
to text, knowledge work, Cowork, the coding agent. Breaking one of those
on stage is critical regardless of diff size; an internal correctness
issue is not critical however elegant the fix would be.
- **The orchestrator re-triages every session**: unlabelled open issues,
priorities that no longer match reality, and pull requests older than
two weeks. A backlog that is not navigable by priority is the same as no
backlog.

## The enforcement

`scripts/check-pr-tracking.py` reads the pull request body and every
issue it links, and fails when:

1. the body links no issue, using the documented verbs. A bare `#N` in
prose is deliberately not a link, since bodies in this repository cite
issue numbers in passing constantly and counting those would pass
everything;
2. a linked issue carries no valid priority label, or carries two, or
carries only a retired one;
3. a linked issue carries no area label;
4. a linked `priority:critical` or `priority:high` issue has no
milestone;
5. the pull request does not carry the priority and area labels of an
issue it closes;
6. a link points at a pull request rather than an issue, or the target
cannot be read. An unreadable target fails rather than passing quietly.

`.github/workflows/pr-tracking-gate.yml` runs it on every pull request.
It is cheap by construction: checkout plus two python invocations, no
toolchain, no network beyond the GitHub API. It listens for `edited`,
`labeled` and `unlabeled` on top of the four types the merge gate
requires, because every way to fix a failure of this gate is one of
those three events, and a gate whose green state cannot be reached
without an unrelated commit gets worked around rather than satisfied.

It is deliberately not a step in `ci.yml` and not affected by that
workflow's docs-only allow-list. That list decides whether the heavy
suite runs; this gate has to run on a documentation-only pull request
too, since a documentation change needs an issue exactly as much as a
code change does. Folding it into `repo-policy-lints` would also mean
giving that job `issues: read`, which the rest of it has no business
holding.

## Can it be bypassed

Two answers, both honest.

**By branch protection, no, once the config is applied.** `PR is
attached to a triaged issue` is added to
`required_status_checks.contexts` in
`.github/branch-protection-main.json`, and
`.github/ci/lint-workflow-check-names.mjs` already verifies on every
pull request that the context has exactly one producer, in an `if:
always()` job, in a workflow with no trigger path filter that reacts to
`ready_for_review`. It reports seven required contexts green on this
branch. **That file is only the checked in copy.** Applying it to live
branch protection still needs the documented call, which the
orchestrator runs after merge:

```bash
gh api -X PUT repos/sakibsadmanshajib/hive/branches/main/protection \
  -H "Accept: application/vnd.github+json" \
  --input .github/branch-protection-main.json
```

Until that runs, the gate is red on a non-compliant pull request but
does not block the merge API. One operational note for when it does run:
an already-open pull request will not publish the new context until some
event fires on it, so nudge the open ones rather than assuming they are
stuck.

**By a determined author, yes, in one specific way.** The gate confirms
that an issue is referenced and that the issue is triaged. It cannot
confirm the link is honest: `Refs #N` pointing at any well labelled
issue passes. That gap is unfixable by a linter, which is why the rule
is addressed to the agent writing the pull request and the gate only
catches the accident. This is stated in the rule file itself rather than
left for someone to discover.

The two carve-outs are narrow and printed in the run log rather than
applied silently: Dependabot, which cannot file an issue and whose
updates would otherwise stall until a human wrote one, and a pull
request whose entire diff is `.wolf/buglog.jsonl`, which is the
buglog-only pull request `.claude/rules/openwolf.md` mandates for a fix
that already had its own issue. One extra file and the buglog carve-out
is gone, so it cannot be used to attach an unrelated diff to an exempt
path.

## Verification

- `python3 scripts/test_check_pr_tracking.py` passes. Every assertion
that matters is a negative one: an untracked body, an unlabelled issue,
a retired `priority:P1`, two priorities at once, a missing area label, a
critical with no milestone, a pull request missing its closed issue's
labels, a link pointing at a pull request, an unreadable issue. It is
registered in `make test-scripts`, so it runs inside the required `Repo
policy lints (tenant + audit)` job and the comparator cannot silently
stop being able to fail.
- `node .github/ci/lint-workflow-check-names.mjs` reports `Merge-gate
integrity OK: 36 check names across 15 pull-request workflows, 10
required contexts each published by exactly one always()-running job in
a workflow with no trigger path filter that reacts to every pull_request
type the merge gate needs.`
- Run against three live pull requests, not fixtures. #1714 exits 0 as
an exempt Dependabot update. #1712 and #1709 each exit 1 with the real
finding that they close a labelled issue whose labels they do not carry,
which is precisely the drift the owner named.

## Review follow ups

Four findings from the CodeRabbit pass, all taken:

- A full issue URL was matched for its number alone, so `Closes
https://github.com/someone-else/repo/issues/7` passed whenever this
repository had a triaged issue 7. `links()` now takes the repository it
is validating and skips a URL pointing elsewhere; a bare `#N` is
untouched, since a bare number is always local. A body linking only
foreign issues now fails with that reason instead of the vaguer "links
no issue".
- The Dependabot carve out matched any author ending `[bot]` or starting
`app/`, which handed the bypass to every other app installed on the
repository. It is now an explicit list of the Dependabot identities
GitHub reports.
- `oauth-scope-gate.yml` said branch protection lists seven required
contexts. It lists ten.
- `CLAUDE.md` said an issue carries one area label. The rule and the
validator both allow more than one, so it now says at least one.

Regression cases for the first two: a foreign URL rejected beside the
same URL shape pointed here and accepted, and six non-Dependabot bot and
app authors that get no exemption. `python3
scripts/test_check_pr_tracking.py` passes.

## Billing gate evidence

CodeRabbit asked for test evidence under the rule that changes touching
billing need it. This diff contains no billing, credits, payments, auth
or tenancy code: `git diff origin/main...HEAD --name-only` is eleven
files, all of them workflows, documentation,
`scripts/check-pr-tracking.py` and its test, and
`tools/verify-spec-wiring.mjs`. What it does touch is *when* the `Refuse
to bill a paid completion alias` step in the `live-integration` job
executes, so that is what the evidence below is about.

The condition did not change. It moved, verbatim, from the job's own
`if:` to a `gate` step whose output every step then reads:

```
needs.changes.outputs.run == 'true' &&
(github.event_name == 'push' ||
 github.event_name == 'schedule' ||
 (github.event_name == 'pull_request' &&
  github.event.pull_request.head.repo.full_name == github.repository &&
  contains(github.event.pull_request.labels.*.name, 'run-live-integration')))
```

Disabled path, executed. Run 33675965786 on commit `f95b60b`, this pull
request, which carries no `run-live-integration` label: `Live
integration (SDK tests + smoke)` concluded success in 6 seconds with the
guard step and every other real step skipped. Before this change the
same pull request produced no check run for that context at all, which
is the reason for the conversion.

Enabled path, not executed here, and deliberately so: it spends a
provider allowance and is opt in by label. Two pieces of evidence stand
in for it. First, the same gate-step pattern in the same workflow and
the same run did take the enabled branch for the two other converted
jobs, `Agent console (type + unit + build)` in 35 seconds and `Web E2E
(full stack)` in 6 minutes 20, both of which run their steps only when
their gate output is `true`. Second, the push to `main` that merging
this creates is itself an enabled-path run, since `github.event_name ==
'push'` satisfies the first arm, and it fails loudly if the guard
stopped running.

The guard's own coverage is unchanged and still enforced from the Go
side by `TestNoCISurfaceCallsAPaidCompletionModel` in
`apps/control-plane/internal/routing/ci_paid_model_guard_integration_test.go`,
which runs in `Go tests (control-plane)` and passed on this branch.

## Also in this diff

`.github/MERGE-POLICY.md` lists all ten required contexts, nine from
`ci.yml` and the tracking gate, and its note that `ci.yml` is the only
workflow allowed to publish a required check is corrected. The stale
count in `oauth-scope-gate.yml` becomes ten. `CLAUDE.md` gains a two
sentence pointer beside the orchestrator contract and duplicates none of
the rule.

No `.wolf/` file is touched.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Added pull request tracking validation requiring links to triaged
issues with appropriate priority and area labels.
- Added automatic checks for required milestones on urgent issues and
matching pull request labels.
- Added limited exemptions for automated pull requests and bug-log-only
changes.

- **CI & Workflow Improvements**
  - Added the tracking validation as a required status check.
- Required additional console, integration, and end-to-end checks for
the main branch.
- Updated checks to report clear results even when changes do not affect
their areas.

- **Tests**
  - Added coverage for tracking validation and exemption scenarios.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Fable 5.1 <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 internal No customer visible effect. javascript Pull requests that update javascript code priority:low Correct but not urgent.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant