stumpylog and Claude Sonnet 5
018c448477
perf: check permitted document IDs via DB-side exclude/exists instead of materializing the full set
...
email_documents, _has_document_permissions, TrashView.post, and
validate_documentlink_targets each resolved permitted_document_ids() into
a full Python set just to check membership for a small, bounded batch of
request document IDs. For a user with broad permitted access that pulls
their entire visible/editable document count into memory and across the
wire regardless of how many documents the request actually touches.
Pushing the membership check into the DB via exclude(...).exists() scales
with the request's batch size instead, without reintroducing the
per-row guardian join pathology from #13276 (confirmed via EXPLAIN
ANALYZE: the permission subplans are hashed once, not re-executed per
outer row).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-08-03 10:23:29 -07:00
stumpylog
a047d0e39d
test: add version-only-grant case discriminating root-vs-version permission check
...
The former "stranger" sub-case in
test_permission_checked_on_root_not_on_version had zero grants on either
root or version, so it passed under any implementation, correct or
buggy. Replace it with a user granted view_document on the version
itself (not the root): this only passes if bulk_download truly checks
root-only, catching a regression to "root OR version" that the old
case could never detect.
2026-08-03 10:23:29 -07:00
stumpylog
c043bf168d
test: repurpose inert grant into mixed-batch bulk-edit rejection case
...
The unrelated view_document grant in
test_bulk_edit_rejects_document_without_change_permission created a
document that was never referenced in the request payload. Turn it
into a genuinely useful case instead: a mixed batch containing one
document the requester is fully permitted to change alongside one
they are not, proving bulk_edit rejects the whole batch when any
document lacks change permission (not just checking the first/last
document in the list).
2026-08-03 10:23:29 -07:00
stumpylog
263b1423a8
perf: drop unused select_related("owner") from email_documents
...
The permission check loop that used to call has_perms_owner_aware()
(which read .owner) was already replaced with permitted_document_ids()
resolved once into a set. No other code in email_documents touches
.owner, so the select_related is dead weight.
2026-08-03 10:23:29 -07:00
stumpylog and Claude Sonnet 5
f84f8c8e79
perf: resolve permitted_document_ids(perm=delete_document, include_deleted=True) once for trash loop
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01GRp4kf1mdn9ruv81zWAmh2
2026-08-03 10:23:29 -07:00
stumpylog
402932d5b0
test: use HTTPStatus enum instead of bare integers in security test assertions
2026-08-03 10:23:29 -07:00
stumpylog
d1c5e5014c
perf: resolve permitted_document_ids once for root-document version-listing loop
...
BulkDownloadView.post() previously called has_perms_owner_aware() per row
inside the loop that resolves each document's root and latest version.
Resolve permitted_document_ids(request.user) once before the loop and check
membership by root_doc.pk instead, consistent with the other consolidated
permission-filtering sites.
2026-08-03 10:23:29 -07:00
stumpylog and Claude Sonnet 5
601b466e87
perf: resolve permitted_document_ids(perm=change_document) once before bulk-edit loops
...
Migrates the bulk document edit permission check in views.py and the
custom-field DOCUMENTLINK validator in serialisers.py off of
has_perms_owner_aware-per-document loops, resolving
permitted_document_ids(user, perm="change_document") once instead.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01GRp4kf1mdn9ruv81zWAmh2
2026-08-03 10:23:29 -07:00
stumpylog and Claude Sonnet 5
e6d3e821cd
perf: resolve permitted_document_ids once before email/share loops
...
Replaces per-document has_perms_owner_aware calls in the email-document
action and bulk share-link-bundle creation with a single
permitted_document_ids(request.user) resolution before the loop,
reducing DB round-trips while preserving identical permission
semantics (including the per-document error message on the bundle
endpoint).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01GRp4kf1mdn9ruv81zWAmh2
2026-08-03 10:23:29 -07:00
stumpylog and Claude Sonnet 5
9d9b0aac1a
fix: normalize qualified permission strings in permitted_document_ids
...
Guardian's UserObjectPermission/GroupObjectPermission always store a bare
codename, but has_perm()-style callers commonly pass the qualified
"app_label.codename" form. Passing that qualified form here previously
matched zero rows, silently under-permitting. content_type already
disambiguates the codename, so just strip any prefix instead.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-08-03 10:23:29 -07:00
stumpylog
9b474807ac
test: strengthen delete-permission include_deleted test to discriminate from other grants
...
test_delete_permission_with_include_deleted_for_trash_restore only checked
an owner and a fully-ungranted stranger, so it never proved perm=
actually discriminates delete_document from other permission grants. Add
a view_only user with view_document (but not delete_document) granted on
the same doc and assert they remain excluded, mirroring the pattern in
test_change_document_permission_is_distinct_from_view.
2026-08-03 10:23:29 -07:00
stumpylog and Claude Sonnet 5
8ead0e2315
feat: add perm param to permitted_document_ids for change/delete checks
...
Widens permitted_document_ids(user, *, include_deleted=False) to
permitted_document_ids(user, *, perm="view_document", include_deleted=False)
so Stage 2 callers can check change_document/delete_document permissions
instead of the hardcoded view_document codename. Default is unchanged for
every existing call site.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01GRp4kf1mdn9ruv81zWAmh2
2026-08-03 10:23:29 -07:00
stumpylog and Claude Sonnet 5
ec2cda0dc1
docs: drop internal task-number reference from AI chat migration test docstring
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-08-03 10:23:29 -07:00
stumpylog and Claude Sonnet 5
646481686c
refactor: remove dead permission_codename param from _resolve_document_ids
...
The keyword param was unused in the method body since an earlier commit
switched it to call permitted_document_ids(user) internally. None of the
3 call sites passed it.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-08-03 10:23:29 -07:00
stumpylog and Claude Sonnet 5
994b505bed
perf: migrate 3 serialisers.py Document permission sites to permitted_document_ids
...
Migrates _get_viewable_duplicates(), PaperlessTaskSerializer.get_duplicate_documents(),
and the ShareLinkBundle document field queryset to use permitted_document_ids()
instead of get_objects_for_user_owner_aware()/get_objects_for_user(), consolidating
onto the shared permission-filtering helper. The is_staff gate in
get_duplicate_documents() is preserved as-is.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01GRp4kf1mdn9ruv81zWAmh2
2026-08-03 10:23:29 -07:00
stumpylog
38fa0fc967
perf: migrate 5 single-call Document permission sites to permitted_document_ids
...
Swaps get_objects_for_user_owner_aware(user, "view_document", Document) for
Document.objects.filter(id__in=permitted_document_ids(user)) at 5 read-only,
single-call sites: AI chat "ask all documents", bulk-edit
_resolve_document_ids all:true branch, SelectionDataView permission check,
global search docs bucket, and the statistics endpoint's Document branch.
Confirmed all 3 callers of _resolve_document_ids always use the default
"view_document" codename before swapping. Added a regression test pinning
the AI-chat owner/permission boundary through the real API client, and
updated 2 existing mocked tests in test_views.py that asserted on
get_objects_for_user_owner_aware for the chat endpoint.
2026-08-03 10:23:29 -07:00
stumpylog and Claude Haiku
fa43bf8953
refactor: remove redundant deleted_at filter in permitted_document_ids
...
Document.objects already applies filter(deleted_at__isnull=True) internally
via SoftDeleteManager.get_queryset(), so the conditional filter was redundant.
Simplify to just use manager.all() in both branches — manager selection alone
ensures correct behavior (Document.objects excludes deleted, Document.global_objects
includes all).
Co-Authored-By: Claude Haiku <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session
2026-08-03 10:23:29 -07:00
stumpylog
46fde4cde8
feat: add include_deleted param to permitted_document_ids
...
Widens permitted_document_ids to accept an include_deleted keyword-only
flag (default False, preserving current behavior) so later call sites
that need visibility into soft-deleted documents (e.g. trash restore)
can reuse this permission check instead of duplicating it.
2026-08-03 10:23:29 -07:00
stumpylog
64e963c0ab
test: verify document is actually soft-deleted (not hard-deleted) in soft-delete visibility test
...
Addresses Copilot review feedback on PR #13505 : refresh_from_db() and
assert deleted_at is set before checking visibility, so this test
actually validates the deleted_at__isnull=True filtering behavior
rather than just checking the document disappeared from the queryset
for any reason.
2026-08-03 10:23:29 -07:00
stumpylog
8f7cda3b14
test: add permission-filtering security regression suite for Document
2026-08-03 10:23:29 -07:00
Trenton H
23c11f49d0
Fix: don't re-queue a consume-folder file that is already queued and awaiting consumption ( #13526 )
2026-08-03 09:55:12 -07:00
shamoon
cfa1d3b058
Fix: correct multi-search non-adjacent queries ( #13504 )
2026-08-03 15:03:03 +00:00
shamoon
68bd8f8f63
Fix: Content-Disposition filename normalization ( #13514 )
2026-08-03 14:31:04 +00:00
shamoon
41d5d86637
Fix: prevent duplicated text query with multiple date queries ( #13522 )
2026-08-03 06:52:44 -07:00
GitHub Actions
2a50425902
Auto translate strings
2026-08-03 13:35:25 +00:00
Gaëtan GOUZI
b67ac5a7d7
Fix: crash filtering document link custom fields with an unset or unrelated field present ( #13518 )
2026-08-03 06:33:48 -07:00
Se1foo
b48c434266
Fix: parse unpadded yyyy-mm-dd date input regardless of locale ( #13501 )
2026-08-02 06:33:01 -07:00
dependabot[bot]
92baa89638
Chore(deps): Bump the actions group across 1 directory with 20 updates ( #13481 )
...
Bumps the actions group with 20 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout ) | `7.0.0` | `7.0.1` |
| [dorny/paths-filter](https://github.com/dorny/paths-filter ) | `4.0.1` | `4.0.2` |
| [actions/setup-python](https://github.com/actions/setup-python ) | `6.3.0` | `7.0.0` |
| [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv ) | `8.2.0` | `9.0.0` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action ) | `4.1.0` | `4.2.0` |
| [docker/login-action](https://github.com/docker/login-action ) | `4.2.0` | `4.5.1` |
| [docker/metadata-action](https://github.com/docker/metadata-action ) | `6.1.0` | `6.2.0` |
| [docker/build-push-action](https://github.com/docker/build-push-action ) | `7.2.0` | `7.3.0` |
| [actions/setup-node](https://github.com/actions/setup-node ) | `6.4.0` | `7.0.0` |
| [j178/prek-action](https://github.com/j178/prek-action ) | `2.0.4` | `2.0.6` |
| [lewagon/wait-on-check-action](https://github.com/lewagon/wait-on-check-action ) | `1.8.0` | `1.8.1` |
| [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter ) | `7.5.1` | `7.6.0` |
| [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action ) | `0.5.7` | `0.6.1` |
| [github/codeql-action/upload-sarif](https://github.com/github/codeql-action ) | `4.36.2` | `4.37.3` |
| [github/codeql-action/init](https://github.com/github/codeql-action ) | `4.36.2` | `4.37.3` |
| [github/codeql-action/analyze](https://github.com/github/codeql-action ) | `4.36.2` | `4.37.3` |
| [crowdin/github-action](https://github.com/crowdin/github-action ) | `2.16.3` | `2.17.0` |
| [actions/labeler](https://github.com/actions/labeler ) | `6.1.0` | `7.0.0` |
| [actions/stale](https://github.com/actions/stale ) | `10.3.0` | `10.4.0` |
| [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action ) | `7.1.0` | `7.2.0` |
Updates `actions/checkout` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0...3d3c42e5aac5ba805825da76410c181273ba90b1 )
Updates `dorny/paths-filter` from 4.0.1 to 4.0.2
- [Release notes](https://github.com/dorny/paths-filter/releases )
- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md )
- [Commits](https://github.com/dorny/paths-filter/compare/fbd0ab8f3e69293af611ebaee6363fc25e6d187d...7b450fff21473bca461d4b92ce414b9d0420d706 )
Updates `actions/setup-python` from 6.3.0 to 7.0.0
- [Release notes](https://github.com/actions/setup-python/releases )
- [Commits](https://github.com/actions/setup-python/compare/ece7cb06caefa5fff74198d8649806c4678c61a1...5fda3b95a4ea91299a34e894583c3862153e4b97 )
Updates `astral-sh/setup-uv` from 8.2.0 to 9.0.0
- [Release notes](https://github.com/astral-sh/setup-uv/releases )
- [Commits](https://github.com/astral-sh/setup-uv/compare/fac544c07dec837d0ccb6301d7b5580bf5edae39...c771a70e6277c0a99b617c7a806ffedaca235ff9 )
Updates `docker/setup-buildx-action` from 4.1.0 to 4.2.0
- [Release notes](https://github.com/docker/setup-buildx-action/releases )
- [Commits](https://github.com/docker/setup-buildx-action/compare/d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5...bb05f3f5519dd87d3ba754cc423b652a5edd6d2c )
Updates `docker/login-action` from 4.2.0 to 4.5.1
- [Release notes](https://github.com/docker/login-action/releases )
- [Commits](https://github.com/docker/login-action/compare/650006c6eb7dba73a995cc03b0b2d7f5ca915bee...abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 )
Updates `docker/metadata-action` from 6.1.0 to 6.2.0
- [Release notes](https://github.com/docker/metadata-action/releases )
- [Commits](https://github.com/docker/metadata-action/compare/80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9...dc802804100637a589fabce1cb79ff13a1411302 )
Updates `docker/build-push-action` from 7.2.0 to 7.3.0
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/f9f3042f7e2789586610d6e8b85c8f03e5195baf...53b7df96c91f9c12dcc8a07bcb9ccacbed38856a )
Updates `actions/setup-node` from 6.4.0 to 7.0.0
- [Release notes](https://github.com/actions/setup-node/releases )
- [Commits](https://github.com/actions/setup-node/compare/48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e...820762786026740c76f36085b0efc47a31fe5020 )
Updates `j178/prek-action` from 2.0.4 to 2.0.6
- [Release notes](https://github.com/j178/prek-action/releases )
- [Commits](https://github.com/j178/prek-action/compare/bdca6f102f98e2b4c7029491a53dfd366469e33d...5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 )
Updates `lewagon/wait-on-check-action` from 1.8.0 to 1.8.1
- [Release notes](https://github.com/lewagon/wait-on-check-action/releases )
- [Changelog](https://github.com/lewagon/wait-on-check-action/blob/master/CHANGELOG.md )
- [Commits](https://github.com/lewagon/wait-on-check-action/compare/96d9100b431964d10e0136aff8b9ccb92470505e...1d57e2c51a58d812d2765e036a028b6bdb5a6154 )
Updates `release-drafter/release-drafter` from 7.5.1 to 7.6.0
- [Release notes](https://github.com/release-drafter/release-drafter/releases )
- [Commits](https://github.com/release-drafter/release-drafter/compare/4d75298e00d9e34c483e5ff8c68d0ea1c1940c1e...eada3c96a64734dd381cfbda23511034e328ddb0 )
Updates `zizmorcore/zizmor-action` from 0.5.7 to 0.6.1
- [Release notes](https://github.com/zizmorcore/zizmor-action/releases )
- [Commits](https://github.com/zizmorcore/zizmor-action/compare/192e21d79ab29983730a13d1382995c2307fbcaa...6fc4b006235f201fdab3722e17240ab420d580e5 )
Updates `github/codeql-action/upload-sarif` from 4.36.2 to 4.37.3
- [Release notes](https://github.com/github/codeql-action/releases )
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md )
- [Commits](https://github.com/github/codeql-action/compare/8aad20d150bbac5944a9f9d289da16a4b0d87c1e...e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 )
Updates `github/codeql-action/init` from 4.36.2 to 4.37.3
- [Release notes](https://github.com/github/codeql-action/releases )
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md )
- [Commits](https://github.com/github/codeql-action/compare/8aad20d150bbac5944a9f9d289da16a4b0d87c1e...e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 )
Updates `github/codeql-action/analyze` from 4.36.2 to 4.37.3
- [Release notes](https://github.com/github/codeql-action/releases )
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md )
- [Commits](https://github.com/github/codeql-action/compare/8aad20d150bbac5944a9f9d289da16a4b0d87c1e...e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 )
Updates `crowdin/github-action` from 2.16.3 to 2.17.0
- [Release notes](https://github.com/crowdin/github-action/releases )
- [Commits](https://github.com/crowdin/github-action/compare/52aa776766211d83d975df51f3b9c53c2f8ba35f...c7af9bc98b01694653031fef2a0dc6c7888ce9bc )
Updates `actions/labeler` from 6.1.0 to 7.0.0
- [Release notes](https://github.com/actions/labeler/releases )
- [Commits](https://github.com/actions/labeler/compare/f27b608878404679385c85cfa523b85ccb86e213...bf12e9b00b37c5c0ca2b87b79b2daf7891dbda13 )
Updates `actions/stale` from 10.3.0 to 10.4.0
- [Release notes](https://github.com/actions/stale/releases )
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/stale/compare/eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899...1e223db275d687790206a7acac4d1a11bd6fe629 )
Updates `stefanzweifel/git-auto-commit-action` from 7.1.0 to 7.2.0
- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases )
- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md )
- [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/04702edda442b2e678b25b537cec683a1493fcb9...4a55954c782fc1ea30b9056cd3e7a2b40ca8887d )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 7.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
- dependency-name: actions/labeler
dependency-version: 7.0.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/setup-node
dependency-version: 7.0.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/setup-python
dependency-version: 7.0.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/stale
dependency-version: 10.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: astral-sh/setup-uv
dependency-version: 9.0.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: crowdin/github-action
dependency-version: 2.17.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: docker/build-push-action
dependency-version: 7.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: docker/login-action
dependency-version: 4.5.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: docker/metadata-action
dependency-version: 6.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: docker/setup-buildx-action
dependency-version: 4.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: dorny/paths-filter
dependency-version: 4.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
- dependency-name: github/codeql-action/analyze
dependency-version: 4.37.3
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: github/codeql-action/init
dependency-version: 4.37.3
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: github/codeql-action/upload-sarif
dependency-version: 4.37.3
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: j178/prek-action
dependency-version: 2.0.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
- dependency-name: lewagon/wait-on-check-action
dependency-version: 1.8.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
- dependency-name: release-drafter/release-drafter
dependency-version: 7.6.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: stefanzweifel/git-auto-commit-action
dependency-version: 7.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: zizmorcore/zizmor-action
dependency-version: 0.6.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-02 04:19:25 +00:00
dependabot[bot]
4c7b3dd307
docker(deps): Bump astral-sh/uv ( #13472 )
...
Bumps [astral-sh/uv](https://github.com/astral-sh/uv ) from 0.11.28-python3.12-trixie-slim to 0.11.32-python3.12-trixie-slim.
- [Release notes](https://github.com/astral-sh/uv/releases )
- [Changelog](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md )
- [Commits](https://github.com/astral-sh/uv/compare/0.11.28...0.11.32 )
---
updated-dependencies:
- dependency-name: astral-sh/uv
dependency-version: 0.11.32-python3.12-trixie-slim
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-02 04:00:13 +00:00
Trenton H
fe48752a6f
Chore: Updates release drafter config to the new format ( #13498 )
2026-08-02 03:50:20 +00:00
dependabot[bot]
4692de5595
docker-compose(deps): Bump nginx in /docker/compose ( #13470 )
...
Bumps nginx from 1.31.2-alpine to 1.31.3-alpine.
---
updated-dependencies:
- dependency-name: nginx
dependency-version: 1.31.3-alpine
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-02 03:41:25 +00:00
dependabot[bot]
141d74464b
docker-compose(deps): Bump greenmail/standalone in /docker/compose ( #13469 )
...
Bumps greenmail/standalone from 2.1.9 to 2.1.11.
---
updated-dependencies:
- dependency-name: greenmail/standalone
dependency-version: 2.1.11
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-02 03:31:10 +00:00
GitHub Actions
c05d069e97
Auto translate strings
2026-08-01 23:27:09 +00:00
dependabot[bot] and shamoon
f5e47a86c3
Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 18 updates ( #13476 )
...
* Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 18 updates
Bumps the frontend-angular-dependencies group with 18 updates in the /src-ui directory:
| Package | From | To |
| --- | --- | --- |
| [@angular/cdk](https://github.com/angular/components ) | `22.0.3` | `22.0.6` |
| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common ) | `22.0.5` | `22.0.8` |
| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler ) | `22.0.5` | `22.0.8` |
| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core ) | `22.0.5` | `22.0.8` |
| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms ) | `22.0.5` | `22.0.8` |
| [@angular/localize](https://github.com/angular/angular ) | `22.0.5` | `22.0.8` |
| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser ) | `22.0.5` | `22.0.8` |
| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router ) | `22.0.5` | `22.0.8` |
| [@ng-select/ng-select](https://github.com/ng-select/ng-select ) | `23.2.0` | `23.5.0` |
| [@angular-devkit/core](https://github.com/angular/angular-cli ) | `22.0.5` | `22.0.8` |
| [@angular-devkit/schematics](https://github.com/angular/angular-cli ) | `22.0.5` | `22.0.8` |
| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder ) | `22.0.0` | `22.1.0` |
| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin ) | `22.0.0` | `22.1.0` |
| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template ) | `22.0.0` | `22.1.0` |
| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics ) | `22.0.0` | `22.1.0` |
| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser ) | `22.0.0` | `22.1.0` |
| [@angular/build](https://github.com/angular/angular-cli ) | `22.0.5` | `22.0.8` |
| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli ) | `22.0.5` | `22.0.8` |
Updates `@angular/cdk` from 22.0.3 to 22.0.6
- [Release notes](https://github.com/angular/components/releases )
- [Changelog](https://github.com/angular/components/blob/main/CHANGELOG.md )
- [Commits](https://github.com/angular/components/compare/v22.0.3...v22.0.6 )
Updates `@angular/common` from 22.0.5 to 22.0.8
- [Release notes](https://github.com/angular/angular/releases )
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md )
- [Commits](https://github.com/angular/angular/commits/v22.0.8/packages/common )
Updates `@angular/compiler` from 22.0.5 to 22.0.8
- [Release notes](https://github.com/angular/angular/releases )
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md )
- [Commits](https://github.com/angular/angular/commits/v22.0.8/packages/compiler )
Updates `@angular/core` from 22.0.5 to 22.0.8
- [Release notes](https://github.com/angular/angular/releases )
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md )
- [Commits](https://github.com/angular/angular/commits/v22.0.8/packages/core )
Updates `@angular/forms` from 22.0.5 to 22.0.8
- [Release notes](https://github.com/angular/angular/releases )
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md )
- [Commits](https://github.com/angular/angular/commits/v22.0.8/packages/forms )
Updates `@angular/localize` from 22.0.5 to 22.0.8
- [Release notes](https://github.com/angular/angular/releases )
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md )
- [Commits](https://github.com/angular/angular/compare/v22.0.5...v22.0.8 )
Updates `@angular/platform-browser` from 22.0.5 to 22.0.8
- [Release notes](https://github.com/angular/angular/releases )
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md )
- [Commits](https://github.com/angular/angular/commits/v22.0.8/packages/platform-browser )
Updates `@angular/router` from 22.0.5 to 22.0.8
- [Release notes](https://github.com/angular/angular/releases )
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md )
- [Commits](https://github.com/angular/angular/commits/v22.0.8/packages/router )
Updates `@ng-select/ng-select` from 23.2.0 to 23.5.0
- [Release notes](https://github.com/ng-select/ng-select/releases )
- [Changelog](https://github.com/ng-select/ng-select/blob/master/CHANGELOG.md )
- [Commits](https://github.com/ng-select/ng-select/compare/v23.2.0...v23.5.0 )
Updates `@angular-devkit/core` from 22.0.5 to 22.0.8
- [Release notes](https://github.com/angular/angular-cli/releases )
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md )
- [Commits](https://github.com/angular/angular-cli/compare/v22.0.5...v22.0.8 )
Updates `@angular-devkit/schematics` from 22.0.5 to 22.0.8
- [Release notes](https://github.com/angular/angular-cli/releases )
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md )
- [Commits](https://github.com/angular/angular-cli/compare/v22.0.5...v22.0.8 )
Updates `@angular-eslint/builder` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases )
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md )
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v22.1.0/packages/builder )
Updates `@angular-eslint/eslint-plugin` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases )
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md )
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v22.1.0/packages/eslint-plugin )
Updates `@angular-eslint/eslint-plugin-template` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases )
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/CHANGELOG.md )
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v22.1.0/packages/eslint-plugin-template )
Updates `@angular-eslint/schematics` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases )
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/schematics/CHANGELOG.md )
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v22.1.0/packages/schematics )
Updates `@angular-eslint/template-parser` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases )
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/template-parser/CHANGELOG.md )
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v22.1.0/packages/template-parser )
Updates `@angular/build` from 22.0.5 to 22.0.8
- [Release notes](https://github.com/angular/angular-cli/releases )
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md )
- [Commits](https://github.com/angular/angular-cli/compare/v22.0.5...v22.0.8 )
Updates `@angular/compiler-cli` from 22.0.5 to 22.0.8
- [Release notes](https://github.com/angular/angular/releases )
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md )
- [Commits](https://github.com/angular/angular/commits/v22.0.8/packages/compiler-cli )
---
updated-dependencies:
- dependency-name: "@angular-devkit/core"
dependency-version: 22.0.8
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-devkit/schematics"
dependency-version: 22.0.8
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/builder"
dependency-version: 22.1.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/eslint-plugin"
dependency-version: 22.1.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/eslint-plugin-template"
dependency-version: 22.1.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/schematics"
dependency-version: 22.1.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/template-parser"
dependency-version: 22.1.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/build"
dependency-version: 22.0.8
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/cdk"
dependency-version: 22.0.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/common"
dependency-version: 22.0.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/compiler"
dependency-version: 22.0.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/compiler-cli"
dependency-version: 22.0.8
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/core"
dependency-version: 22.0.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/forms"
dependency-version: 22.0.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/localize"
dependency-version: 22.0.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/platform-browser"
dependency-version: 22.0.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/router"
dependency-version: 22.0.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-angular-dependencies
- dependency-name: "@ng-select/ng-select"
dependency-version: 23.5.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: frontend-angular-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
* More 21.1.x
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com >
2026-08-01 23:25:12 +00:00
dependabot[bot] and shamoon
fe196eaf0e
Chore(deps-dev): Bump @playwright/test from 1.61.1 to 1.62.0 in /src-ui ( #13480 )
...
* Chore(deps-dev): Bump @playwright/test from 1.61.1 to 1.62.0 in /src-ui
Bumps [@playwright/test](https://github.com/microsoft/playwright ) from 1.61.1 to 1.62.0.
- [Release notes](https://github.com/microsoft/playwright/releases )
- [Commits](https://github.com/microsoft/playwright/compare/v1.61.1...v1.62.0 )
---
updated-dependencies:
- dependency-name: "@playwright/test"
dependency-version: 1.62.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
* Bump Playwright CI container version
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com >
2026-08-01 16:09:43 -07:00
dependabot[bot]
7fda0e877b
Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates ( #13477 )
...
Bumps the frontend-eslint-dependencies group with 4 updates in the /src-ui directory: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin ), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ), [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils ) and [eslint](https://github.com/eslint/eslint ).
Updates `@typescript-eslint/eslint-plugin` from 8.62.1 to 8.65.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.65.0/packages/eslint-plugin )
Updates `@typescript-eslint/parser` from 8.62.1 to 8.65.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.65.0/packages/parser )
Updates `@typescript-eslint/utils` from 8.62.1 to 8.65.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.65.0/packages/utils )
Updates `eslint` from 10.6.0 to 10.8.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v10.6.0...v10.8.0 )
---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.65.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: frontend-eslint-dependencies
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.65.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: frontend-eslint-dependencies
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.65.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: frontend-eslint-dependencies
- dependency-name: eslint
dependency-version: 10.8.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: frontend-eslint-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-01 23:02:54 +00:00
dependabot[bot]
5b8f4db1ca
Chore(deps-dev): Bump @types/node from 26.1.0 to 26.1.1 in /src-ui ( #13479 )
...
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) from 26.1.0 to 26.1.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 26.1.1
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-01 15:50:19 -07:00
github-actions[bot]
08ab98f3fc
Changelog v3.0.5 - GHA ( #13492 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-01 15:02:46 -07:00
shamoon
8fb73b2709
Bump version to 3.0.5
v3.0.5
2026-08-01 14:38:08 -07:00
shamoon
b8ab8327b0
Merge branch 'dev'
2026-08-01 14:37:17 -07:00
github-actions[bot] and Crowdin Bot
3a0ca03544
New Crowdin translations by GitHub Action ( #13372 )
...
Co-authored-by: Crowdin Bot <support+bot@crowdin.com >
2026-08-01 14:36:33 -07:00
shamoon
882dfa78d2
Documentation: PAPERLESS_CONSUMER_IGNORE_PATTERNS clarifications ( #13489 )
2026-08-01 14:20:31 -07:00
Trenton H
a5645392a5
Fix: accept Whoosh-era abbreviated relative-date units (yrs, mos, wks, etc) in search queries ( #13486 )
2026-08-01 21:16:57 +00:00
GitHub Actions
bbdf2cbd06
Auto translate strings
2026-08-01 20:33:37 +00:00
shamoon
0bbe180f63
Fix: fix edit dialog error change detection ( #13483 )
2026-08-01 13:27:34 -07:00
Trenton H and Claude Sonnet 5
e35452beeb
Perf/fix: stop building a full-library IN filter for unrestricted RAG context ( #13441 )
...
get_context_for_document() always materialized every document id a user
can see into a Python list, even for a superuser (or no user at all),
passing it through as a SQL IN filter. For a superuser, that's the whole
library:
- Past ~32,763 documents, this crashes outright:
sqlite3.OperationalError: too many SQL variables (SQLite's
SQLITE_MAX_VARIABLE_NUMBER is 32766 by default, and the query already
binds embedding + k + a NE self-exclusion clause alongside the ids).
- Below that cliff, vec0's IN-list evaluation is a nested loop (strncmp
per row per allowed id), so it's quadratic in library size for no
reason -- the filter was never going to exclude anything.
get_objects_for_user_owner_aware() already returns every Document for a
superuser (guardian's own with_superuser shortcut), so skipping straight
to document_ids=None changes nothing about which documents are
considered, only how we get there.
Also:
- Drop the pointless sorted() in _document_id_filters(): a SQL IN clause
doesn't care about order, so it was pure overhead on every call.
- Add a hard guard in _build_where() so a future regression (or a
legitimately huge permission-restricted user) fails closed -- no rows,
a logged warning -- instead of a cryptic OperationalError. Since this
filter scopes document access, failing closed rather than skipping the
filter is the only safe way to handle an oversized list.
First item from VECTOR_STORE_PERF_BACKLOG.md (an audit done alongside
perf/13314-vecstore-point-delete, deferred to its own branch since that
one was already large).
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com >
2026-08-01 07:20:30 -07:00
Trenton H
68a769b40c
Fix: make LLM index migration-check result tri-state, avoid deferred-vs-current ambiguity ( #13436 )
...
* Fix: make migration-check result tri-state to avoid deferred-vs-current ambiguity
* Test: cover update_llm_index()'s migration-check-deferred branch
* Refactor: rename COMPACT_BATCH_SIZE to BATCH_SIZE, no longer compact()-specific
2026-08-01 07:20:29 -07:00
Trenton H and Claude Sonnet 5
e5b27df99c
Feature: vector store schema v2 document_chunks/document_meta side tables, INTEGER document_id, point-delete ( #13435 )
...
* Feature: schema v2 -- document_chunks/document_meta side tables, document_id INTEGER, point-delete
Rewrites the sqlite-vec vector store's on-disk schema: document_id becomes
an INTEGER vec0 metadata column (was TEXT), modified moves out of vec0 into
a new document_meta side table, and a new document_chunks side table gives
O(1) per-document chunk lookup for delete/upsert instead of a full vec0
scan. compact() now streams document_chunks and document_meta across the
file-swap rebuild too (previously document_meta would have gone silently
empty after the first compaction). drop_table() clears both side tables.
Adds the single frozen m0001_v1_to_v2 migration, converting a real,
historically-shaped v1 store (the shape shipped since v3.0.0) into the v2
shape in one streaming pass, with its own hardcoded DDL rather than
delegating to any "current schema" helper.
SCHEMA_VERSION bumps 1 -> 2.
* Fix: strengthen two vacuous Task 4 regression tests
test_migration_never_delegates_to_current_schema_helpers never actually ran
the migration (missing check_and_run_migrations() call) and its source-text
assertion was tautological (the "or DROP TABLE in source" clause was always
true). Now runs the real migration and asserts spy call counts instead:
DocumentChunksTable.create/DocumentMetaTable.create are each called exactly
3 times (construction, rebuild temp file, post-swap reopen -- all via
_open_connection, never from inside apply()), and _create_vec_table is
never called from the migration path.
test_drop_table_clears_modified_times asserted via get_modified_times(),
which short-circuits on table_exists() -- checking only the vec0 table that
drop_table() drops first -- so the assertion held even if
DocumentMetaTable.delete_all() were never called. Now asserts directly
against document_meta and document_chunks row counts.
* Perf: dedupe table_exists() lookups, atomic insert counter, fewer connections in update_llm_index()
* Fix: guard compact() against unmigrated stores, apply final-review cleanups
compact() had no migration guard: on a v1-schema store, document_chunks
reads 0 (freshly created empty) while total_inserts reflects the real
cumulative count, so the bloat check nearly always rebuilt -- silently
losing document_meta (copy_all reads from the empty v1 table) while
schema_version copied across unchanged, leaving the store permanently
unmigratable. compact() now calls has_pending_migration() and no-ops with
a warning instead.
Also folds in five minor final-review findings: drop _rebuild_into's
unused int return, hoist test-local imports to module level in
test_vector_store.py, note in TestMigrations' docstring that its fake
structural migrations only exercise dispatch (not full schema
correctness), restore the comment explaining why _row() requires
document_id, and tighten increment_total_inserts' docstring to not imply
general concurrency safety beyond its single atomic statement.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
---------
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com >
2026-08-01 07:20:29 -07:00
Trenton H and Claude Sonnet 5
95a48dd685
Chore: Vector Store table-gateway module (document_chunks/document_meta/index_meta) ( #13428 )
...
* Feature: add table-gateway module for document_chunks/document_meta/index_meta
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
* Fix: address code review feedback on table gateways
- Document sqlite3.Row row_factory precondition in module docstring
- Strengthen test_create_is_idempotent to verify populated table survives
- Collapse three roundtrip tests into one @pytest.mark.parametrize
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
---------
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com >
2026-08-01 07:20:28 -07:00
Trenton H
aa938de747
Refactor: extract QuerySetStream, shared by search and LLM indexing ( #13431 )
2026-08-01 04:07:26 +00:00