Skip to content

Explain the on-chain cost of Open projects and add a registration retry - #68

Open
jakepel03 wants to merge 7 commits into
mainfrom
open-project-cost-notice-65
Open

Explain the on-chain cost of Open projects and add a registration retry#68
jakepel03 wants to merge 7 commits into
mainfrom
open-project-cost-notice-65

Conversation

@jakepel03

Copy link
Copy Markdown
Owner

Closes #65. Stacked on #64 (both touch createProjectModal.ts) — merge #64 first; I'll rebase this onto main after the squash.

Creating an Open project registers it on-chain so members can byte-read full note content (resolveImportedArtifactReadSubjectisPublicOpenContextGraph reads the on-chain policy). On real networks that registration can charge the OT-RFC-53 TRAC deposit (100 TRAC in the mainnet parameters; waivable via a PublishingConviction commitment; dormant on local dev chains). SWM triple gossip is unaffected — an unregistered open project still shares titles/links fine.

  • Create modal: a hint under the Access-mode dropdown now explains the trade per mode, including the possible TRAC deposit, before the user commits.
  • SubscribedContextGraph.registered?: boolean records the create-time registration outcome (additive; old entries stay undefined and show nothing).
  • Failure notice reworded: the project keeps working for triples; retry when the wallet is funded — no more "recreate the project".
  • Dashboard retry: owner rows of unregistered open projects get a "Not registered" chip + Register button calling the existing registerContextGraph(cgId, 0, 1) fallback; success clears the flag and re-renders.

Backward compatibility: fully compatible — one optional settings field, no migration, no node-floor change, no command/id changes.

25/25 tests pass, build + lint clean.

Base automatically changed from mainnet-docs-sweep to main July 1, 2026 22:07
@jakepel03
jakepel03 force-pushed the open-project-cost-notice-65 branch from e79516f to d9a82eb Compare July 1, 2026 22:09
Closes #65. Creating an Open project registers it on-chain, and on real
networks that registration can charge a TRAC deposit (OT-RFC-53,
100 TRAC on mainnet, waivable via a PublishingConviction commitment).
The create modal never mentioned this, and a failed registration told
the user to recreate the project even though it can simply be retried.

- Create modal: a mode hint under the Access-mode dropdown explains what
  each mode costs and buys (curated = private and free; open =
  registered on-chain, possible TRAC deposit on real networks, free on
  a local dev chain).
- Track the registration outcome on the project entry
  (SubscribedContextGraph.registered, additive/optional).
- Failure notice now says members still receive titles and links and
  points at the new retry, instead of "recreate the project".
- Dashboard: owner rows of unregistered open projects show a
  "Not registered" chip and a Register button that retries via the
  existing register endpoint and clears the flag on success.
The register route 409s with "already registered" when the context
graph already has an on-chain slot (e.g. a prior attempt's transaction
landed but its receipt was missed). Both the dashboard retry and the
create-time fallback now recognize that as the goal state instead of
surfacing it as a failure — otherwise a stale registered:false flag
could never clear. Adds registerContextGraph client tests (request
shape + 409 error surface).
… DID

Members of open projects joined with a plain project-id invite had no
curatorPeerId, so artifact byte-reads probed peers unpinned and often died
with stream resets, silently degrading every fork to a title+links stub.
Resolve the owner's peer id from the graph list's creator DID at fork time
and backfill it into the stored subscription.
@jakepel03
jakepel03 force-pushed the open-project-cost-notice-65 branch from df59b03 to 24c7035 Compare August 3, 2026 19:57
@jakepel03 jakepel03 self-assigned this Aug 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Explain the on-chain cost before creating an Open project, and offer a registration retry

1 participant