Projects can span multiple counterparties
Projects are now treated as free-form buckets - counterparty membership is derived from the documents in the project (intake_counterparty), plus an optional projects.counterparty as a "primary" hint. A project named "Customer Contracts" with Adobe + Stripe + Intercom docs now appears under each of those three counterparties in /customers. - GET /projects/counterparties: project rows pull every distinct intake_counterparty across the project's docs; project_count is incremented per-counterparty. Role filter applies at the document level so a multi-cp project surfaces correctly. - GET /projects/counterparties/:name/timeline: includes any project whose docs reference this counterparty (not just primary-counterparty matches). Document list is scoped to docs that actually belong to this counterparty (or all docs when this IS the project's primary).
| Repository | Custos/legalos |
|---|---|
| Author | Custos <jfeinblum@gmail.com> |
| Authored | |
| Parents | b375d048 |
| Stats | 1 file changed , +117 , -18 |
| Part of | Counterparties + customer index (CLM core) |
Capture this commit into my fork
Download a Markdown prompt that tells Claude how to port this
exact commit into your working tree. Run it via
claude -p < capture-commit-dd8e28e2.md
from inside the repo you want the change in.