Add org.hypercerts.acknowledgement lexicon - #76
Conversation
🦋 Changeset detectedLatest commit: 3044e22 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds a new org.hypercerts.acknowledgement lexicon and export constant, updates schema docs and ERD to include the acknowledgement dataclass and its relationships, and adds a changeset and README usage examples. Also expands the org.hypercerts.claim.activity schema in SCHEMAS.md. Changes
Sequence Diagram(s)(omitted) Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 6 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (6 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In `@ERD.puml`:
- Around line 321-323: The ERD references an undefined entity: change the
invalid relation "acknowledgement::contexts --> project" to point at the correct
sidecar entity or remove it; specifically update the acknowledgement::contexts
relation to reference collectionProject if acknowledgement contexts should
target the former project sidecar, otherwise delete the
acknowledgement::contexts --> project line so acknowledgement::contexts only
links to existing entities like collection.
In `@README.md`:
- Around line 641-642: Remove the duplicate horizontal rule in README.md by
deleting one of the two consecutive '---' separators so only a single horizontal
rule remains; locate the consecutive '---' entries and remove the redundant one
to restore proper section separation.
🧹 Nitpick comments (1)
ERD.puml (1)
192-214: Consider adding sidecar relationships to collection entity for consistency.The
acknowledgemententity shows an explicit sidecar relationship toactivity(line 321), but the collection sidecar entities (collectionLocation,collectionProject,collectionHyperboard) don't show their relationship to thecollectionentity.For diagram clarity and consistency, consider adding dotted relationships:
collectionLocation .. collection : "sidecar (same TID)" collectionProject .. collection : "sidecar (same TID)" collectionHyperboard .. collection : "sidecar (same TID)"
2a10d1c to
3a549bc
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@README.md`:
- Around line 452-465: The README's acknowledgement sidecar text mentions
"collections or projects" but the ERD/schema only links
acknowledgement::contexts to collections; update to keep docs and schema aligned
by either (A) removing "projects" from the Sidecar Pattern and the Properties
description for the contexts field (`contexts`, `acknowledgement::contexts`) so
it only references collections, or (B) extend the ERD/schema to permit project
targets and document that change (update `acknowledgement::contexts` schema and
any ERD links to include project target type). Locate the `contexts` property
and the "Sidecar Pattern" paragraph in the README and apply the chosen
consistent change.
|
Draft: needs to change from sidecar to regular lexicon |
45f6870 to
59ed48c
Compare
a8a992d to
3044e22
Compare
There was a problem hiding this comment.
Pull request overview
Introduces a new Hypercerts lexicon intended to represent explicit acknowledgement/consent when one record is included/associated within another, and updates the repository documentation and release metadata accordingly.
Changes:
- Added a new
org.hypercerts.acknowledgementlexicon record for bidirectional inclusion acknowledgement. - Updated schema reference docs and README with acknowledgement documentation and usage examples.
- Updated ERD and added a changeset to publish a minor release.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
lexicons/org/hypercerts/acknowledgement.json |
Adds the acknowledgement record schema (subject/context strongRefs, boolean acknowledgement, optional comment, createdAt). |
SCHEMAS.md |
Adds the auto-generated schema reference entry for the new lexicon. |
README.md |
Documents the acknowledgement concept and provides TypeScript examples. |
ERD.puml |
Adds an acknowledgement dataclass and relationship arrows for subject/context. |
.changeset/add-acknowledgement-lexicon.md |
Declares a minor release for the new acknowledgement lexicon. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
This PR introduces the
org.hypercerts.acknowledgementlexicon for bidirectional linking between records across PDS repositories. It enables record owners to explicitly acknowledge (or reject) the inclusion of their records in another user's records.Fixes #36 and #63.
Key Changes
org.hypercerts.acknowledgement— a regular record (not a sidecar) with its own TIDsubjectandcontextfields (bothcom.atproto.repo.strongRef) to form bidirectional links across reposDesign
Each acknowledgement references:
subject: the record being included (e.g. an activity, a contributor information record)context: the record it's being included in (e.g. a collection, an activity)acknowledged: boolean — true to confirm, false to rejectThe acknowledgement is typically created in the subject owner's repo, forming a verifiable two-way link that an AppView can check.
Example
A contributor (Bob) acknowledges inclusion in Alice's activity:
{ "$type": "org.hypercerts.acknowledgement", "subject": { "uri": "at://did:plc:bob/org.hypercerts.claim.contributorInformation/abc123", "cid": "bafy..." }, "context": { "uri": "at://did:plc:alice/org.hypercerts.claim.activity/3k2abc", "cid": "bafy..." }, "acknowledged": true, "comment": "Confirming my contribution to this reforestation project", "createdAt": "2026-02-12T00:00:00Z" }