Repository navigation
chore(release): bump version to 2.0.0 - #6928
Merged
Merged
Conversation
LearningCircuit
had a problem deploying
to
ci
September 27, 2026 20:10 — with
GitHub Actions
Failure
Contributor
📊 Coverage Report
📈 View Full Report (updates after merge) 📉 Coverage DetailsFiles needing attention (<50% coverage):
Report for |
This was referenced Sep 29, 2026
3 tasks
This was referenced Oct 3, 2026
This was referenced Oct 10, 2026
9 tasks
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Set
src/local_deep_research/__version__.py,package.jsonand the npm lockfile root to 2.0.0. The FastAPI/Uvicorn migration changes HTTP, authentication, Socket.IO, deployment and database behavior, so this is a SemVer major release. The code diff remains limited to those three version files.Merge this PR last. The release is not yet qualified. Merging the version change starts the automated release pipeline. The release owner performs the individual PR merges.
Each selected fix must land through its focused canonical PR targeting
main. #6929 is reference material only; do not accumulate or publish further fixes there. Its historical component tests do not qualify current main or the final 2.0.0 artifacts. Preserve contributor ownership and compare current main and existing PRs before carrying any still-missing change forward.Current evidence — October 15–16
The October 15, 22:09 UTC (October 16, 00:09 CEST) inventory snapshot contains 222 open PRs and 887 open issues. It includes new #7441–#7450 and the additional main merges listed below. No new issues were opened after the preceding 21:48 UTC snapshot. Related task conversations, PR discussions and the #7199 backup acceptance were read. This is scope triage and remote-state reconciliation, not a claim that every current diff has passed adversarial review.
863cabea459e7ef55b8d31ab5ca6ad33b0d295a6. Its fresh Docker CI run is pending at this snapshot; intervening runs cancelled by newer pushes do not qualify main. The preceding6e88a356fd59Docker run passed All Pytest Tests + Coverage and amd64/arm64 production-image smoke tests, but skipped browser/LLM/infrastructure suites. That earlier result does not qualify the new main or final release.89fb7d3toa2b82f3#7380 and test: resolve ForwardRef dependencies in isolation census #7323 merged. Release-decision and expiring-exception CI from ci: verify release decisions and expiring exceptions #6887 is delivered. The OSV completeness correction is delivered; it is no longer a pending source PR.89fb7d3toa2b82f3#7380 changes both Python image digests while retaining Python 3.14.8, so the runtime/image gate still needs fresh qualification; a digest change alone does not establish a patched runtime.Tracker #7137 retains the earlier scope decisions but its checkboxes are stale. At the earlier reconciliation, 123 of 167 referenced PR entries were merged, 41 were open and 3 were closed without merging; 95 unchecked entries were already merged. Those open entries included old sources, alternatives and holds, so they did not represent 41 independent required merges. The source map below reconciles those distinctions without dropping selected behavior.
Release behavior and upgrade requirements
The release moves the web application to FastAPI/Uvicorn and carries database revisions that v1.10.7 does not understand. It includes library identity/retry/indexing corrections, recoverable encrypted backups, stronger settings contracts, safer frontend rendering, search/report improvements and metrics that preserve research ownership and caller transactions. Some selected follow-ups below remain open; the final release notes must describe only what actually lands.
Already-landed behavior includes:
Before upgrading from v1.10.7, follow the upgrade/rollback guide and reverse-proxy guide:
~/Documents/LocalDeepResearch/Librarydefault. The path is operator-managed. Changing its deployment override does not move files and applies across accounts; docs(settings): name the library path variable the code reads #7391 corrects the configuration reference and upgrade wording.TRUST_PROXY_HEADERS, restrictLDR_SERVER_FORWARDED_ALLOW_IPSto actual trusted proxies and isolate the backend. Update custom Socket.IO clients/proxies to/ws/socket.io.Verify login, saved settings, research completion, reconnects, library search/indexing and restart behavior before retiring backups.
Selected work still requiring resolution
These are release requirements or selected changes, not blanket merge recommendations. Preserve each canonical PR, review its current diff and discussion, resolve overlaps, and validate against current main. Draft PRs remain held. A green check does not replace review of a newer revision.
1f6575dd344bpush, including main through3d626c2a4and the reviewed bulk-save atomicity correction. Local settings/API/proxy/upgrade, persistence, HTTP, frontend and negative-control checks passed; current hosted full pytest remains pending. Invalid configured managed values/type metadata must raise explicit safe errors; absent optional settings, repair exports and documented environment bypasses remain supported. In-memory imports must not partially apply failed conversions; startup must not hide invalid scheduler settings. Preserve global inheritance and operator-only locations.2b8312a1a876, with fresh full CI pending. Reject invalid saved subscription intervals before trigger creation, manual/overdue dispatch and schedule advancement; preserve valid rows in the same batch and give users a repair path. Qualify this with merged #7078's legacy migration.378c1b5f6bcd, is the focused canonical correction. Forward explicit providers through the existing runtime overlay and normalize empty optional stored provider/model fields to inherit current settings. Actual scheduled dispatch through committed subscriptions, worker context and real provider policy is covered. Validation passed 796 affected tests with one skip, 32 new regressions included, plus 16 offline integration checks; discriminating baseline controls and independent review passed. Full pytest is requested and incomplete; the current OSV check fails. This is separate from #7228's creation/Run Once decoding fix and #7363's worker authentication context.6c828c02a478. The test-pool cleanup correction is pushed at91a70ae7c7cb; the native Windows workflow now passes on Python 3.12 and 3.14 at that head. Full pytest remains incomplete. Current OSV and FastAPI migration-quality checks fail; the latter reports the backup-status endpoint's bare-dict exception response and its changed reachable-status contract. Resolve these failures against the intended response contract before readiness sign-off. This does not supply live restore or replace upgrade/rollback rehearsal.SettingsValueErrorpropagation when composed with #7288 and merged #7194. #7313's current context/output-budget revisiond48f0529b21fawaits full pytest. #6800's custom-model budget correction is pushed at5dd175604bfc; its task reports full-diff/conversation/affected-code review clear and 1,133 local passes with two existing xfails. Current hosted CI remains pending and its draft hold remains.80ef0d625c24. The branch is conflict-free; fresh hosted full pytest is pending. Local browser checks are reported passed; final browser/artifact qualification remains a release gate. Merged #7135 supplies the upload/WAL-snapshot companion behavior.82b7394c41a0, is the canonical follow-up to merged #5495/#7135. Select its confirmed-storage/error/indexing recovery behavior for library acceptance. Preserve committed files and collection links after partial request failure, report PDF-storage failures, admit newly linked PDF upgrades and recover already-stored unindexed content without duplicates. Keep parsing outside an open database snapshot, per-file SAVEPOINT isolation and indexing admission protections. Its task reports 335 focused Python passes, 17 browser passes and real SQLite/SQLCipher/FAISS recovery controls, with regressions against main. Current hosted CI and final affected-code qualification remain required. Storage, queue admission and completed indexing are separate outcomes.Library acceptance must also retain the qualified retry distinctions: completed stored PDFs still repair tracker/queue/collection state while reusing canonical storage; the missing-PDF refill exception must coexist with rejection of conflicting regenerated bytes before mutating either document or tracker. Uploads without provenance must extract their own PDF, and a refused new snapshot must not borrow an unrelated snapshot's text. Accepted text improvements must remain pending across restarts until indexed, including bulk, parallel, direct-batch and scheduled selection. Preserve collection/source/model/provider selection, decorated-URL history without rewriting stored hashes, and rejection of unsupported remote-vector rebuilds before database work.
At the 22:09 UTC snapshot and follow-up mergeability checks, #5632
ea96af0296f8, #7201c5ba09836579, #7083b9e6b8066937, #732214c1d1ba156c, #73276cddd4d4bb0f, #737881e5f081eb90, #7391abcf846f75a1, #7397eb4a6db53e27, #7400547eef66e984and #736345a57de485a3have successful recorded full pytest and no failed/pending checks on those heads, with no conflicts on the latest checks. Approval remains necessary. These recorded passes do not resolve newer dependency/pinning alerts or qualify final main. #6752ef924d24e628also has recorded passing full pytest but retains its draft hold and overlap/dependency review. #72881f6575dd344band #713380ef0d625c24have had their conflicts corrected and await fresh full validation. #7288's local checks include 1,952 settings/API/configuration tests with 13 existing xfails, 327 persistence/security tests with one existing xfail, eight new HTTP/SQLite regressions, final diagnostic controls and 91 frontend tests across 17 suites. Independent review found no remaining blocker after the integer composition and bulk-save correction; local checks do not substitute for hosted full pytest.Full pytest is queued for #6917, #7313, #7089, #7106, #7310 and #7441; #7377 is now running full pytest. #6919
2b8312a1a876, #7444378c1b5f6bcd, #744391a70ae7c7cb, #73176ad643e24c74, #744682b7394c41a0, #74501d32fd40184band the other selected pushes still await complete current validation. OSV checks now fail on #7228, #7310, #7317, #7330, #7441, #6662, #7443 and #7444. #7443 also fails two migration-quality guards on the backup-status response contract; passing native Windows SQLCipher jobs do not clear those failures. #7263 has both a recorded full pass and later image/full-check failures with a replacement run pending; it is held until the resulting required checks succeed. #7318, #7227 and #7323 are merged, not pending PR validation. The #6986 task also reports its main conflicts resolved at0c8614792320, with current CI pending; that synchronization supplies no runtime-image waiver.The new scanner findings have the following source dispositions at main
15a4b89aebd0:release.yml. The other four are intentional fresh-resolution installs of the wheel, extras, source distribution and published package inrelease-gate.yml/publish.yml. These still match current source; older indexing is not their resolution. Any correction must preserve the ability to detect broken consumer dependency resolution. Existing fix(ci): verify tool hashes and SQL scanner data flow #7082's tool-lock changes do not cover these call sites. New canonical fix(release): hash-lock Towncrier installs #7450 adds the complete binary-only Towncrier lock, isolated tool environments and the sparse-checkout input. Six real-pip offline regression tests pass and all six fail with the original installers. The existing CI suite passes 1,227 tests and 921 subtests, with seven native Semgrep CLI checks skipped. All 153 hashes match official metadata, and both actual render/cleanup paths produce identical notes from all 415 current fragments. Full independent seven-file review and changed-file hooks pass; full hosted CI is requested withtest:pytestand is incomplete. The current release classifier treats all six as blocking medium findings, with no active exceptions; older Scorecard documentation does not waive that gate.mcp>=1.30.0would make those requirements unsatisfiable. Require an upstream-compatible scanner release or a separately reviewed remediation strategy; do not use an unchecked transitive override or create a new exception implicitly. 🤖 Update dependencies #7379 is not a fix for these tool requirements.New inventory decisions
The refreshed review read all 42 newer open issue discussions and 34 newer non-routine open PRs, checked related conversations and compared existing overlapping work. A further pass read the five new issues #7436–#7440 and checked their relationship to current main and existing PRs. These are scope decisions; current code review and CI remain separate.
81e5f081eb90found no actionable issue within the documented policy; 1,837 affected tests, six public regression controls against main and independent security/compatibility checks passed. Current-head full pytest is green; required GitHub approval remains. Keep any newly discovered undisclosed variants in the separate advisory process.5173799f7cf3; CI pending and draft retained. The residual patch preserves merged contributor #6694 and synchronizes main throughbf7be7a8. Creation and Run Once share registry-backed decoding, preserve native model colons and normalize surrounding whitespace (#7437/#7438). Both independent adversarial reviews found no in-scope blocker. Validation passed 180 affected Python tests and 159 tests across 19 news JavaScript suites; 14 negative-control cases fail against main, with two benign controls passing. Real persistence and manual/overdue provider dispatch are covered, including changed defaults after creation. Local Vitest differs from the lockfile, so hosted validation remains required. The separate background-scheduler correction is in #7444 above.Nonblocking PR follow-ups remain #7322/#7327/#7329/#7330, #7336/#7338/#7339, #7355/#7356/#7357, #7369/#7370, #7441 and contributor #7415. #7352 and #7364 are now merged. Contributor #7442 is a useful, nonblocking test-only follow-up to #7422/#7340: it makes the unindexed-collection regression discriminate the skip path and updates stale test documentation. Preserve its ownership and require its own review/CI; it adds no runtime fix. Registration defaults (#7329) and unconditional full-CI scheduling (#7372) are separate policy changes; neither silently replaces the current release criteria. #7338's dormant cancellation hook must not be advertised as live end-to-end MCP cancellation. #7330 adds diagnostics; the transaction repair is delivered by merged #7227. #7441 is desirable but nonblocking: it completes the deferred #6848 diagnostics follow-up to merged #6576 without changing refusal decisions. It complements #7322 and is independent of #7321/#7330. Its scope triage is complete; independent merge review and successful current full CI remain required.
Record the unresolved #7360/#7371 dropdown-layout overlap without taking over or closing either contributor PR. #6954 is now merged; compare the remaining #7367 citation-whitespace diff against main before treating it as still-missing behavior, preserving contributor ownership. #7368's log-preview floor is already covered by merged #7354; compare residual differences before treating it as additional work. New provider #7403 and broad ingestion #7416 remain optional.
The #7437/#7438 whitespace and provider-registry follow-ups are implemented in the updated #7228 decoder patch and await its current full CI and merge; they are not separate release gates. #7439/#7440 remain nonblocking test-caption and dormant-fallback follow-ups.
Most #7421–#7435 are explicitly extracted test, documentation or defense-in-depth follow-ups. In particular, #7431 asks a separate ignored-manifest scan-scope policy decision; merged #7318 guarantees completion of the selected invocation, not universal discovery of ignored files. #7429's legacy NULL-mode checks must be considered with the merged migration/defaults. Preserve the existing post-v2 treatment of #7361/#7365/#7373/#7374/#7390/#7392 and their contributor claims. Do not claim universal parser isolation, immediate revocation of every active socket, or complete sanitization parity from narrower selected fixes.
Source choices, overlaps and holds
5173799f7cf3; its title and description now reflect that remaining scope. Local validation and two independent reviews passed, while current hosted CI, draft disposition and approval remain. Do not treat the contributor PR as replaced; the separate scheduler correction is #7444.Preserve already-landed behavior and contributor attribution from the earlier tracker, including #7066/#7086/#7166/#7172/#7165, #7074/#6381, #6434, #7144 and the release/test helpers #6897/#6921/#6932/#7084/#7210/#7212/#7221/#7234/#7255/#7265/#7267. Closed source candidates #6153/#6981/#7136/#7168/#7155/#7158 do not imply missing standalone fixes. Routine dependency updates remain subject to their own compatibility and scan evidence; the previously pending #7296–#7306 updates are now merged.
The broader #4448 Auto Research, #6251 collection-management/provider feature, #6759 shared cache, #7312 configurable reasoning/temperature/sampling and #7416 automatic ingestion/persistence are not release prerequisites. Preserve any already-selected shared correctness fixes through their existing canonical PRs; broader features and overlapping schema changes require their own decision and validation.
Existing deferrals remain: #7236/#7238/#7241/#7254/#7264, #7292/#7294, #7215/#7216/#7220, #7270/#7271/#7272 and #7273/#7274/#7275. Preserve contributor discussions. #5521 assisted legacy migration remains future work; #6356 requires a separate threat-model assessment; #5810/#6593 are not newly promoted release blockers. #7118's benchmark CLI override gap means those runs cannot stand in for qualification of the requested configuration. Related acceptance/follow-up issues such as #7097, #5681, #6847/#7093 and the broader #5835 work remain tracked; existing uncertainty is not evidence of a new missing fix.
Final release gates
test:pytest, require successful All Pytest Tests + Coverage on the current PR test-merge revision, all other required checks and reviewer approval. Requalify stacked work on main after its parents land. Focused tests, skipped/cancelled runs and results from earlier heads do not satisfy this gate.