Skip to content

backend(deps): bump python-multipart from 0.0.27 to 0.0.29 in /backend#30

Open
dependabot[bot] wants to merge 3 commits into
masterfrom
dependabot/pip/backend/python-multipart-0.0.29
Open

backend(deps): bump python-multipart from 0.0.27 to 0.0.29 in /backend#30
dependabot[bot] wants to merge 3 commits into
masterfrom
dependabot/pip/backend/python-multipart-0.0.29

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

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

Bumps python-multipart from 0.0.27 to 0.0.29.

Release notes

Sourced from python-multipart's releases.

Version 0.0.29

What's Changed

Full Changelog: Kludex/python-multipart@0.0.28...0.0.29

Version 0.0.28

What's Changed

Full Changelog: Kludex/python-multipart@0.0.27...0.0.28

Changelog

Sourced from python-multipart's changelog.

0.0.29 (2026-05-17)

  • Handle malformed RFC 2231 continuations in parse_options_header #270.

0.0.28 (2026-05-10)

  • Speed up partial-boundary tail scan via bytes.find #281.
  • Cap multipart boundary length at 256 bytes #282.
Commits
  • e3d6853 Version 0.0.29 (#288)
  • a60dcdc Handle malformed RFC 2231 continuations in parse_options_header (#270)
  • 75c33b2 Add 7-day cooldown for dependency resolution via uv exclude-newer (#286)
  • a078b8e Bump urllib3 from 2.6.3 to 2.7.0 (#285)
  • 7d8d28b Version 0.0.28 (#284)
  • b0dd125 Cap multipart boundary length at 256 bytes (#282)
  • d1b5739 Speed up partial-boundary tail scan via bytes.find (#281)
  • 09cb8c3 Make the long_boundary benchmark dominated by the patched code path (#280)
  • a6467c9 Revert "Switch CodSpeed benchmarks to walltime mode" (#279)
  • 9a96900 Switch CodSpeed benchmarks to walltime mode (#278)
  • 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)

DaveBugg and others added 3 commits May 21, 2026 15:30
Panels (notably Happ JSON bundles) return the same logical server
multiple times — one outbound per SNI/fingerprint variant for
domain-fronting resilience. Observed on s.stun.su returning 1256
outbounds for happ-macos UA across 303 unique (addr,port,uuid)
servers. The pre-1.3.6 delete-and-insert flow created 1256 Node rows;
the 1.3.6 upsert kept them around forever as orphans (their fp is in
seen_fps so not deleted, but only one row per fp is the matched
'existing' so others are never updated either).

Two fixes:

1. Dedup parsed list by fingerprint before the upsert loop — multiple
   SNI variants of the same (protocol, addr, port, uuid, password)
   collapse to one Node row, last-wins on mutable fields.

2. Collapse legacy duplicates from the DB on every refresh. Pick the
   smallest-id row as the survivor (stable choice — minimizes external
   reference breakage) and transparently remap any active_node_id /
   NodeCircle.node_ids reference from a dup to the survivor before
   deleting the dup. User never notices the cleanup.

Tests: 3 new in TestSubscriptionRefreshDedupsParsed covering parsed
dedup, legacy DB dedup, and cross-reference remap (active + circle
both pointing at dups that get collapsed).
Burn-in on a 1256-node Happ-bundle subscription surfaced four
refresh-related regressions: the active node disappeared after every
refresh, NodeCircle members went dangling, the same logical server
accumulated as ~22x legacy duplicates, and a double-click on
'Update Geo' raced two downloads. This release fixes all four
end-to-end.

Highlights:
- Stable-fingerprint upsert preserves Node.id across refreshes
- Per-subscription refresh mutex (409 on concurrent calls)
- NodeCircle.node_ids and active_node_id transparently remap through
  fingerprint dedup + legacy-duplicate collapse
- Geo update: per-call unique tmp path + frontend/backend mutex pair
- Boot-time active_node_id integrity check now actually runs

7 commits since v1.3.5. 23 new backend tests; full suite 608 passed.
Frontend build + tests clean.

Safe to upgrade from any 1.3.x. Next successful refresh after upgrade
auto-collapses any accumulated legacy duplicates.
Bumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.27 to 0.0.29.
- [Release notes](https://github.com/Kludex/python-multipart/releases)
- [Changelog](https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md)
- [Commits](Kludex/python-multipart@0.0.27...0.0.29)

---
updated-dependencies:
- dependency-name: python-multipart
  dependency-version: 0.0.29
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels May 22, 2026
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 python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant