Skip to content

Releases: mehbul/counsel-workspace

Counsel workspace 0.2.0

Choose a tag to compare

@mehbul mehbul released this 28 Oct 09:20

Counsel workspace 0.2.0

The second release of the free, self-hosted legal workspace. 0.2.0 adds opt-in
local OCR for scanned PDFs, a hardened owner-only matter archive restore, and a
production HTTPS deployment guide backed by a strict-TLS deployment verifier.

This remains a functional foundation, not a production-certified or
independently audited product. Please read the limits below before using client
material.

What's new

  • Local OCR for scanned PDFs (opt-in). Install Tesseract and Poppler, build
    with INSTALL_OCR=1, enable with COUNSEL_OCR_ENABLED=1. Only pages without
    native text are OCRed, processing is bounded, native-text pages keep their
    extracted text, and mixed documents keep page order and exact character
    offsets. Documents never leave the host. See
    docs/OCR.md.
  • Owner-only matter archive restore
    (POST /api/matters/archive/restore). The offline verification pipeline runs
    before any write; identifier collisions fail closed with 409 unless
    newIds=1 requests a remap of every archived record ID; restored execution
    state never resumes (queued jobs restore as failed, schedules and research
    watches restore disabled, non-terminal runs restore as cancelled, audit
    rows are never restored); and restores roll back database, audit and
    in-memory state together on failure. Owner authorization runs before an
    archive upload is buffered.
  • Production HTTPS deployment guide
    (docs/DEPLOYMENT.md):
    the end-to-end Caddy recipe, an environment-variable table, an nginx
    alternative, a scheduled backup recipe with an integrity check, and an
    acceptance checklist. node scripts/verify-deployment.js checks the real
    certificate over strict TLS, the HTTP redirect, readiness, security headers
    and anonymous API rejection — and is never bypassed with insecure flags.
  • The reverse-proxy request-body cap now allows the 256 MiB archive restore
    uploads end to end.

Run it

Personal mode requires Node.js 24.15 or newer:

git clone https://github.com/mehbul/counsel-workspace.git
cd counsel-workspace
npm ci
npm run start:personal

Open http://127.0.0.1:3000. For HTTPS deployment on a server, see
docs/DEPLOYMENT.md.

The container image is published at
ghcr.io/mehbul/counsel-workspace:0.2.0.

Verification

  • 200 tests pass in GitHub Actions, including real Tesseract/Poppler OCR
    checks; 198 pass locally where the engines are not installed.
  • Build, formatting, dependency audit, Caddyfile validation, Docker build and
    the hardened-container smoke test pass in
    CI.
  • The release image was built and published by
    run 40663103009.
  • CodeQL and Gitleaks pass on the public repository.
  • The maintainer exercised the HTTPS deployment flow locally against
    https://localhost with the real Caddy binary — strict-TLS verification,
    secure cookies, proxy-keyed rate limits and authenticated WebSocket upgrades
    — plus a backup-then-restore drill with an isolated restore boot. Public
    hostname acceptance by an operator is still pending; product.json keeps
    productionDeploymentDrill: false until it is done.
  • The clause engine numbers are unchanged: 33.98% answerable-only token F1 and
    77.05% answerability balanced accuracy on a document-disjoint CUAD validation
    split. Regression measurements, not legal-accuracy evidence.

Known limits

  • OCR is not preinstalled: scanned PDFs need separately installed local
    Tesseract and Poppler tools, explicitly enabled by the operator.
  • No SSO, SCIM, MFA or enterprise directory integration.
  • No iManage or NetDocuments adapter, provider ACL sync or ethical-wall
    mapping.
  • Archives are checksummed but not encrypted, signed or notarized; restore is
    owner-only.
  • No multi-instance or high-availability mode.
  • No independent security audit, penetration test or legal review.
  • No guarantee of legal accuracy.
  • No blinded legal-quality comparison with Legora or any commercial product.
  • No live Slack or Teams tenant acceptance.
  • Production HTTPS deployment on a public hostname has not been exercised by an
    operator yet.

Read the security policy,
threat model,
verification record
and changelog.

Links

Counsel workspace is independent and not affiliated with, endorsed by or
sponsored by Legora or any commercial legal-AI provider. "Legora" is a trademark
of its respective owner. Nothing here is legal advice.

If this is useful, star the repository so other small practices can find it.

Counsel workspace 0.1.0 - first public preview

Choose a tag to compare

@mehbul mehbul released this 26 Oct 11:33

Counsel workspace 0.1.0

The first public preview of a free, self-hosted legal workspace: contract
review, legal research, drafting, workflows and client collaboration on your own
computer or server. Apache 2.0, no seat fee, no telemetry and no mandatory model
API.

This is a functional foundation, not a production-certified or independently
audited product. Please read the limits below before using client material.

Highlights

  • Personal mode for one trusted computer, with loopback-only access and
    synthetic seed data.
  • Team mode with owner-created accounts, Argon2 password hashing, revocable
    sessions, CSRF and origin checks, rate limits, and owner/editor/viewer/guest
    roles.
  • Matters and documents with PDF, DOCX, TXT, Markdown and CSV import,
    original-file retention, page and paragraph anchors, and OCR-needed reporting.
  • Evidence-first review with matter-scoped ranked search, deterministic
    clause anchors, exact offsets, conservative abstention, review tables and CSV
    export.
  • Drafting and comparisons with rich text, comments, checkpoints, proposed
    edits, highlighted changes and DOCX export.
  • Approval-gated workflows, durable runs, retries, cancellation and
    schedules.
  • Guest-only client portal with explicit publication and immediate
    revocation.
  • US Federal Register and eCFR research with official-origin pinning and
    publication watches.
  • Signed webhook, Slack and Teams notifications with encrypted secrets,
    durable retries and receipts.
  • Portable matter archives with a manifest, SHA-256 checksums, readable
    source text, structured records and an offline verifier.
  • MCP integration for scoped evidence reading and host-authored drafts,
    reviews and tasks.
  • Optional local Ollama or bring-your-own model generation, disabled by
    default.

Run it

Personal mode requires Node.js 24.15 or newer:

git clone https://github.com/mehbul/counsel-workspace.git
cd counsel-workspace
npm ci
npm run start:personal

Open http://127.0.0.1:3000. For Docker deployment, see
docs/OPERATIONS.md.

The container image is published at
ghcr.io/mehbul/counsel-workspace:0.1.0.

Verification

  • 188 tests pass locally and in GitHub Actions.
  • Build, formatting, dependency audit, Docker build and hardened-container smoke
    test pass in CI.
  • CodeQL and Gitleaks pass on the public repository.
  • The clause engine scored 33.98% answerable-only token F1 and 77.05%
    answerability balanced accuracy on a document-disjoint CUAD validation split.
    The retrieval benchmark is synthetic. These are regression measurements, not
    legal-accuracy evidence.

Known limits

  • No OCR for scanned PDFs.
  • No SSO, SCIM, MFA or enterprise directory integration.
  • No iManage or NetDocuments adapter, provider ACL sync or ethical-wall mapping.
  • No archive import, restore, encryption, signature or notarization.
  • No multi-instance or high-availability mode.
  • No independent security audit, penetration test or legal review.
  • No guarantee of legal accuracy.
  • No blinded legal-quality comparison with Legora or any commercial product.
  • No live Slack or Teams tenant acceptance.

Read the security policy,
threat model,
verification record
and changelog.

Links

Counsel workspace is independent and not affiliated with, endorsed by or
sponsored by Legora or any commercial legal-AI provider. "Legora" is a trademark
of its respective owner. Nothing here is legal advice.

If this is useful, star the repository so other small practices can find it.