Commit Graph
388 Commits
Author SHA1 Message Date
github-actions[bot] ccc3f42640 bump: version 0.120.5 → 0.121.0 2026-06-18 00:24:21 +00:00
github-actions[bot] 060084029f bump: version 0.120.4 → 0.120.5 2026-06-17 19:47:14 +00:00
github-actions[bot] cf553543b2 bump: version 0.120.3 → 0.120.4 2026-06-17 19:22:06 +00:00
github-actions[bot] d969526613 bump: version 0.120.2 → 0.120.3 2026-06-16 19:03:52 +00:00
github-actions[bot] d09f8b53ef bump: version 0.120.1 → 0.120.2 2026-06-16 19:01:20 +00:00
github-actions[bot] 5a0deac502 bump: version 0.120.0 → 0.120.1 2026-06-16 18:15:08 +00:00
github-actions[bot] 68b4f5f1f7 bump: version 0.119.0 → 0.120.0 2026-06-16 14:27:04 +00:00
github-actions[bot] 3d28621c57 bump: version 0.118.0 → 0.119.0 2026-06-15 14:59:13 +00:00
github-actions[bot] 07ee91399b bump: version 0.117.2 → 0.118.0 2026-06-15 04:34:42 +00:00
github-actions[bot] 9389393d89 bump: version 0.117.1 → 0.117.2 2026-06-14 17:22:25 +00:00
github-actions[bot] a818b49b3f bump: version 0.117.0 → 0.117.1 2026-06-14 15:44:18 +00:00
github-actions[bot] 4cf31b1472 bump: version 0.116.0 → 0.117.0 2026-06-13 15:53:28 +00:00
github-actions[bot] 6db48830af bump: version 0.115.1 → 0.116.0 2026-06-13 12:42:44 +00:00
github-actions[bot] b356eb3b49 bump: version 0.115.0 → 0.115.1 2026-06-13 10:03:02 +00:00
github-actions[bot] c79389a224 bump: version 0.114.0 → 0.115.0 2026-06-12 14:00:08 +00:00
github-actions[bot] 4688f2f95a bump: version 0.113.1 → 0.114.0 2026-06-11 13:46:59 +00:00
github-actions[bot] 45ebe83045 bump: version 0.113.0 → 0.113.1 2026-06-11 09:02:11 +00:00
github-actions[bot] e7cb697146 bump: version 0.112.0 → 0.113.0 2026-06-11 08:41:23 +00:00
github-actions[bot] 4767312ad7 bump: version 0.111.0 → 0.112.0 2026-06-11 08:39:11 +00:00
github-actions[bot] 457c115ef4 bump: version 0.110.2 → 0.111.0 2026-06-10 22:24:38 +00:00
github-actions[bot] ec075b4ed9 bump: version 0.110.1 → 0.110.2 2026-06-10 20:27:02 +00:00
Chris CoutinhoandGitHub a336b8eb0d Merge pull request #883 from cbcoutinho/worktree-tender-stargazing-sundae
test: Pact consumer contract for astrolabe credentials status (ADR-029)
2026-06-10 22:26:39 +02:00
github-actions[bot] ee21dc1ed0 bump: version 0.110.0 → 0.110.1 2026-06-10 20:24:37 +00:00
Chris CoutinhoandClaude Opus 4.8 d33832aba9 test: add Pact consumer contract for astrolabe credentials status (ADR-029)
Introduce consumer-driven contract testing between nextcloud-mcp-server and the
astrolabe Nextcloud app, published to the homelab Pact Broker and verified in CI.

- pact-python dev dep + `contract` pytest marker
- tests/contract/test_astrolabe_credentials_consumer.py: consumer pact for the
  background-sync *status* call (provisioned -> has_background_access:true,
  sync_type:"app_password", integer provisioned_at; unprovisioned -> false/null)
- tests/contract/test_mcp_provider_verification.py: env-gated Verifier harness
  for this server's /api/v1/* provider role (provider-state handlers stubbed
  pending astrolabe's published pacts)
- .github/workflows/pact.yml: join tailnet -> publish pacts -> provider verify
  -> can-i-deploy; broker steps skip when PACT_BROKER is unset (forks)
- docs/ADR-029-pact-contract-testing.md

Fix astrolabe_client.get_background_sync_status: it previously read a
non-existent `app_password` field (always reporting no-access). Rewrite it to
read the real status contract (has_background_access / sync_type /
provisioned_at) and drop the unsatisfiable get_user_app_password.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 20:22:07 +02:00
github-actions[bot] 2d691225b2 bump: version 0.109.1 → 0.110.0 2026-06-08 20:49:56 +00:00
github-actions[bot] 20ce2a1845 bump: version 0.109.0 → 0.109.1 2026-06-08 14:23:09 +00:00
github-actions[bot] 24fd85949e bump: version 0.108.3 → 0.109.0 2026-06-08 13:19:00 +00:00
github-actions[bot] 96c0491f14 bump: version 0.108.2 → 0.108.3 2026-06-08 00:24:45 +00:00
github-actions[bot] fe17994c4d bump: version 0.108.1 → 0.108.2 2026-06-07 19:15:06 +00:00
github-actions[bot] 90d2192347 bump: version 0.108.0 → 0.108.1 2026-06-07 16:55:16 +00:00
github-actions[bot] 792c536802 bump: version 0.107.0 → 0.108.0 2026-06-07 15:22:22 +00:00
github-actions[bot] 42505f8f87 bump: version 0.106.0 → 0.107.0 2026-06-06 12:25:28 +00:00
github-actions[bot] 74b864354f bump: version 0.105.0 → 0.106.0 2026-06-06 07:33:10 +00:00
github-actions[bot] 78f3f284a6 bump: version 0.104.1 → 0.105.0 2026-06-05 03:22:24 +00:00
github-actions[bot] d421bf6953 bump: version 0.104.0 → 0.104.1 2026-06-05 01:28:03 +00:00
github-actions[bot] 3e681ef2ee bump: version 0.103.0 → 0.104.0 2026-06-05 00:47:32 +00:00
Chris CoutinhoandGitHub c67b998784 Merge pull request #858 from cbcoutinho/feat/tiered-doc-processor-b2-tier1
feat: tiered PDF processor — pypdfium2 fast path (deprecate pymupdf4llm)
2026-06-05 02:43:11 +02:00
github-actions[bot] ccff5389b0 bump: version 0.102.0 → 0.103.0 2026-06-04 23:43:48 +00:00
Chris CoutinhoandClaude Opus 4.8 c48a797896 feat: tiered PDF processor with pypdfium2 fast path (deprecate pymupdf4llm)
Replaces single-engine pymupdf4llm extraction with a tiered pipeline (Deck #205,
follows the tier-0 classifier #855). pypdfium2 becomes the default and only
hot-path PDF extractor; pymupdf4llm is deprecated to a rollback toggle.

Why: pymupdf4llm's O(n^2) find_tables drove the OOM (#852) and the form-PDF
parse timeouts (#856), carries AGPL/commercial licensing liability, and -- per
the benchmarks -- recovers near-zero usable tables on the real corpus. pypdfium2
(Apache/BSD) extracts the same text far faster (Student 1a.pdf: 120s timeout ->
0.2s) with no table-detection bomb.

- document_processors/pypdfium2_fast.py: tier-1 "fast" processor emitting text +
  exact page_boundaries (the pdf_highlighter contract). pymupdf processor is now
  tier "structured" (the rollback engine), registered but not default.
- registry: tiered routing in ProcessorRegistry. tier-1 fast extracts, then
  classification is DERIVED from that text (classifier.classify_from_text -- no
  PDF re-open), records the classification metrics, and escalates scanned /
  no-text-layer docs to the "ocr" tier when document_ocr_enabled (default off;
  no provider yet, so fast is terminal). Wires record_document_escalation + the
  real "escalated" span attribute (was hardcoded False).
- Removes the separate _shadow_classify pass from vector/processor.py -- it
  re-opened every PDF and re-extracted text (~0.5-1.3s/doc of pure duplicated
  CPU that lowered throughput); classification now rides the tier-1 extraction.
- Settings: document_tier1_engine ("pypdfium2" default | "pymupdf" rollback,
  enum-validated), document_ocr_enabled (default false).

Tests: pypdfium2 extractor, registry tiering (fast routing, rollback, classify
recording, OCR escalation on/off), classify_from_text. Full unit suite green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 01:32:14 +02:00
github-actions[bot] 967298ddbe bump: version 0.101.4 → 0.102.0 2026-06-04 22:47:40 +00:00
github-actions[bot] dd335275ac bump: version 0.101.3 → 0.101.4 2026-06-04 22:09:33 +00:00
github-actions[bot] dc01e55b60 bump: version 0.101.2 → 0.101.3 2026-06-04 22:06:48 +00:00
github-actions[bot] eb5f59f085 bump: version 0.101.1 → 0.101.2 2026-06-04 20:43:01 +00:00
github-actions[bot] 09e84783e5 bump: version 0.101.0 → 0.101.1 2026-06-04 20:32:07 +00:00
github-actions[bot] af4a264aa3 bump: version 0.100.0 → 0.101.0 2026-06-04 19:27:41 +00:00
github-actions[bot] b84ac24d10 bump: version 0.99.0 → 0.100.0 2026-06-04 19:22:47 +00:00
github-actions[bot] 55ea8dd358 bump: version 0.98.1 → 0.99.0 2026-06-04 16:00:02 +00:00
github-actions[bot] 0919513f21 bump: version 0.98.0 → 0.98.1 2026-06-04 00:01:09 +00:00
github-actions[bot] 08318c8ea6 bump: version 0.97.0 → 0.98.0 2026-06-03 21:44:27 +00:00
Chris CoutinhoandGitHub 4e983e98f6 Merge pull request #836 from cbcoutinho/feat/183-procrastinate-ingest-queue
feat: replace NATS ingest with procrastinate Postgres queue (#183)
2026-06-03 23:44:06 +02:00