Repository navigation
OpenContracts v3.1.0
OpenContracts v3.1.0 adds domain-pack installation and authority ingestion, improves agent configuration and authentication, and completes the removal of the legacy Graphene runtime.
Highlights
- Domain and authority packs: install coordinated packs with corpus groups, orchestrator agents, consumer-agent configuration, and cross-pack equivalences. Operators can disable Python providers shipped inside packs and preview their code surface before installation.
- Authority ingestion: external harvesters can push authority-section batches through a dedicated worker-token capability. Citation recognition now covers federal bills and resolutions, with additional regulation and case-reporter fixes.
- Agent configuration: corpuses can select a default agent, and configured corpus/document personas are preserved when computed context is appended.
- Authentication: frontend sessions are validated before use, account transitions clear prior session state, and Auth0 uses redirect login with improved stale-token recovery.
- GraphQL runtime: Graphene, graphene-django, django-graphql-jwt, and graphql-relay are removed. JWT authentication uses the shared Django/PyJWT implementation; served schema, opaque IDs, pagination, and existing auth contracts are preserved.
- Reliability: embedding timeout fixes, reduced unnecessary vector-store queries, stronger CI gating, and browser coverage for notification auth, token refresh, and the PDF extraction/export workflow.
Upgrading
Run the database migrations with the updated application image. The release includes schema changes for corpus default agents and authority-section worker uploads.
If your deployment explicitly lists graphql_jwt.refresh_token in INSTALLED_APPS, replace it with config.jwt_auth.refresh_token. Existing refresh-token tables, data, and migration history are preserved. Python integrations that import JWT helpers or signals directly should use config.jwt_auth.
Agent system prompts now include persona text that was previously omitted. Deployments with large personas should review their token budgets and compaction thresholds.
See the GraphQL migration guide and changelog for details.
Validation
All 21 checks passed on PR #2310 before merge.
- Full backend CI: 11,329 tests and 382 subtests passed, 26 skipped.
- Extract PDF workflow: passed without retries, including upload, extraction, CSV export, iteration creation, and comparison.
- WebSocket authentication: all 6 tests passed without retries.
- Frontend: 2,226 component tests passed, 3 skipped; 2,597 unit tests passed.
- Frontend builds, browser navigation, Redis integration, lint, and security scans passed.
The release uses the same source tree validated by PR CI.
Container images
Published for linux/amd64:
ghcr.io/open-source-legal/opencontractserver_django:v3.1.0ghcr.io/open-source-legal/opencontractserver_frontend:v3.1.0ghcr.io/open-source-legal/opencontractserver_postgres:v3.1.0ghcr.io/open-source-legal/opencontractserver_traefik:v3.1.0
The release image build passed, including the Django size budget. All four versioned image tags were verified in GHCR.