radicle-heartwood-lfs/crates/radicle-cli/examples
Lorenz Leutgeb d8c14222a2 radicle/cob/identity: Rewrite Evaluation
The evaluation of the reposioty identity is rewritten to better handle cases
where there are child and sibling revisions that are active at the same time.

In particular, `fn Identity::action` is now free of any references to
`self.current`.

This is achieved through two main improvements. The first is that the `State`
of revisions changes to improve clarity:
 1. `Active` and `Accepted` remain, and their meanings also remain the same.
 2. `Stale` is removed entirely.
 3. `Rejected` is improved to also contain `RejectedBy`, to keep track of the
    reason for rejection.
 4. `Redacted` is promoted to a state. Similarly, the reason for
    redaction is tracked by `RedactedBy`.

The transition of a revision from `Active` to one of the other states now
influences siblings and children.

If a revision transitions to `Accepted`, then the sibling revisions can no
longer transition to `Accepted`. They are considered `Rejected` where the reason
is `Sibling`. This cascades: Children of siblings are `Rejected`
recursively, tracking `RejectedBy::Parent`.
Any children of the `Accepted` revision are also evaluated to see if they can be
similarly transitioned to the `Accepted` state; since they may have already been
voted on.

If a revision was rejected by a majority, then the it transitions to `Rejected`
with `RejectedBy::Vote`. Dually to acceptance, the children of this revision
are also rejected with the reason of `Ancestor`.

Finally, when the author of a revision redacts a revision, it transitions
to `Redacted`, tracking `RedactedBy::Author`, and its children are redacted
tracking `RedactedBy::Parent`.

The test is adjusted to `remove_delegate_concurrent` reflect that concurrently
proposed revisions are retained in the timeline and explicitly marked as rejected,
rather than being dropped entirely (as before).
2026-07-02 09:56:22 +01:00
..
framework cli/test: Clean up testing environment 2025-10-13 08:56:23 +01:00
git cli/id: Print Parent of Revision 2026-05-22 09:09:01 +01:00
workflow radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
jj-config.md radicle-cli/tests: Add `rad_jj_patch` 2025-09-26 12:03:01 +01:00
jj-init-bare.md treewide: Spelling 2026-04-30 15:50:29 -04:00
jj-init-colocate.md cli/examples: fix jj-init-colocate test 2026-06-20 10:01:40 +01:00
rad-auth-errors.md cli: fix test regression in 27a85987c3 2025-10-17 16:57:29 +01:00
rad-auth.md just: checking for ellipses 2026-05-28 16:52:02 +01:00
rad-block.md cli: Do not print scope in block table 2026-02-16 21:39:11 +01:00
rad-checkout-repo-config-linux.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-checkout-repo-config-macos.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-checkout.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-clean.md treewide: Spelling 2026-04-30 15:50:29 -04:00
rad-clone-all.md treewide: Spelling 2026-04-30 15:50:29 -04:00
rad-clone-bare.md Spell "Radicle" with a captial R 2026-04-17 17:15:31 +01:00
rad-clone-connect.md cli: Changed the default scope from all to followed for clone and seed 2026-02-16 21:39:11 +01:00
rad-clone-directory.md cli: Improve formatting of Node IDs and addresses 2025-07-18 21:44:06 +01:00
rad-clone-partial-fail.md Use humantime to parse timeouts 2026-03-17 11:39:09 +00:00
rad-clone-scope.md cli/tests: Add test for `rad clone --scope` 2026-03-17 10:31:29 +00:00
rad-clone-unknown.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-clone.md Spell "Radicle" with a captial R 2026-04-17 17:15:31 +01:00
rad-cob-log.md radicle-cli: Add labels column to patch list 2026-06-09 11:00:32 +02:00
rad-cob-migrate.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-cob-multiset repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-cob-multiset.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-cob-operations.md cli: extend `rad cob log` behaviour 2025-08-19 15:01:26 +01:00
rad-cob-show.md radicle-cli: Add labels column to patch list 2026-06-09 11:00:32 +02:00
rad-cob-update-identity.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-cob-update.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-config.md cli-test: Disable normalizing paths 2026-06-03 11:49:41 +02:00
rad-diff.md cli-test: Disable normalizing paths 2026-06-03 11:49:41 +02:00
rad-fetch.md cli: Changed the default scope from all to followed for clone and seed 2026-02-16 21:39:11 +01:00
rad-fork.md treewide: Spelling 2026-04-30 15:50:29 -04:00
rad-help.md treewide: radicle.{xyz → dev,network} 2026-04-27 18:34:30 +02:00
rad-id-collaboration.md treewide: Spelling 2026-04-30 15:50:29 -04:00
rad-id-conflict.md radicle/cob/identity: Rewrite Evaluation 2026-07-02 09:56:22 +01:00
rad-id-multi-delegate.md cli/id: Print Parent of Revision 2026-05-22 09:09:01 +01:00
rad-id-private.md cli: extract document update logic 2025-07-16 16:41:16 +02:00
rad-id-threshold-soft-fork.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-id-threshold.md cli/id: Print Parent of Revision 2026-05-22 09:09:01 +01:00
rad-id-unauthorized-delegate.md radicle-cli: more helpful error for non-delegate updates 2026-01-22 10:38:28 +00:00
rad-id-unknown-field.md cli/id: Print Parent of Revision 2026-05-22 09:09:01 +01:00
rad-id-update-delete-field.md cli/id: Print Parent of Revision 2026-05-22 09:09:01 +01:00
rad-id.md just: checking for ellipses 2026-05-28 16:52:02 +01:00
rad-inbox.md just: checking for ellipses 2026-05-28 16:52:02 +01:00
rad-init-detached-head.md cli: improve default branch pick 2025-07-23 07:43:27 +01:00
rad-init-existing-bare.md just: checking for ellipses 2026-05-28 16:52:02 +01:00
rad-init-existing.md just: checking for ellipses 2026-05-28 16:52:02 +01:00
rad-init-no-git.md cli: improve default branch pick 2025-07-23 07:43:27 +01:00
rad-init-no-seed.md radicle-cli: Remove fullstop from RID on rad init 2026-06-22 16:52:53 +01:00
rad-init-private-clone-seed.md Use humantime to parse timeouts 2026-03-17 11:39:09 +00:00
rad-init-private-clone.md Use humantime to parse timeouts 2026-03-17 11:39:09 +00:00
rad-init-private-no-seed.md radicle-cli: Remove fullstop from RID on rad init 2026-06-22 16:52:53 +01:00
rad-init-private-seed.md cli: Improve formatting of Node IDs and addresses 2025-07-18 21:44:06 +01:00
rad-init-private.md radicle-cli: Remove fullstop from RID on rad init 2026-06-22 16:52:53 +01:00
rad-init-sync-not-connected.md radicle-cli: Remove fullstop from RID on rad init 2026-06-22 16:52:53 +01:00
rad-init-sync-preferred.md radicle-cli: Remove fullstop from RID on rad init 2026-06-22 16:52:53 +01:00
rad-init-sync-timeout.md radicle-cli: Remove fullstop from RID on rad init 2026-06-22 16:52:53 +01:00
rad-init-sync.md radicle-cli: Remove fullstop from RID on rad init 2026-06-22 16:52:53 +01:00
rad-init-with-existing-remote.md radicle-cli: Remove fullstop from RID on rad init 2026-06-22 16:52:53 +01:00
rad-init.md radicle-cli: Remove fullstop from RID on rad init 2026-06-22 16:52:53 +01:00
rad-inspect-noauth.md Spell "Radicle" with a captial R 2026-04-17 17:15:31 +01:00
rad-inspect.md radicle/sigrefs: Automatically Migrate 2026-03-24 14:40:42 +00:00
rad-issue-list.md cli/issue: Use clap 2025-09-28 18:02:55 +02:00
rad-issue.md cli: Add blank line after issue reply header 2026-03-12 13:30:09 +00:00
rad-key-mismatch.md crypto/ssh/keystore: Explicit paths 2025-09-26 13:21:38 +02:00
rad-merge-after-update.md canonical: Support Annotated Tags 2025-08-04 17:00:54 +02:00
rad-merge-no-ff.md canonical: Support Annotated Tags 2025-08-04 17:00:54 +02:00
rad-merge-via-push.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-node.md just: checking for ellipses 2026-05-28 16:52:02 +01:00
rad-patch-ahead-behind.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-patch-change-base.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-patch-checkout-force.md just: checking for ellipses 2026-05-28 16:52:02 +01:00
rad-patch-checkout-revision.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-patch-checkout.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-patch-delete.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-patch-detached-head.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-patch-diff.md cli/diff: Use clap 2025-10-15 10:30:34 +02:00
rad-patch-draft.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-patch-edit.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-patch-fetch-1.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-patch-fetch-2.md cli/test: Fix failures related to remote HEAD 2026-04-21 23:15:34 +02:00
rad-patch-jj.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-patch-magic-push.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-patch-merge-draft.md canonical: Support Annotated Tags 2025-08-04 17:00:54 +02:00
rad-patch-merge-into-canonical-ref-branch.md cli/examples: Introduce a suite of merge and revert tests for patch.target 2026-06-09 11:37:26 +02:00
rad-patch-merge-on-first-push.md cli/examples: rad-patch-merge-on-first-push 2026-05-27 22:31:11 +01:00
rad-patch-merge-unauthorized-branch.md cli/examples: Introduce a suite of merge and revert tests for patch.target 2026-06-09 11:37:26 +02:00
rad-patch-merge-wrong-branch.md cli/examples: Introduce a suite of merge and revert tests for patch.target 2026-06-09 11:37:26 +02:00
rad-patch-open-explore.md treewide: radicle.{xyz → dev,network} 2026-04-27 18:34:30 +02:00
rad-patch-pull-update.md radicle-cli: Remove fullstop from RID on rad init 2026-06-22 16:52:53 +01:00
rad-patch-revert-custom-branch.md cli/examples: Introduce a suite of merge and revert tests for patch.target 2026-06-09 11:37:26 +02:00
rad-patch-revert-merge.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-patch-review-no-options.md cli: Fix panic on `rad patch review` without options 2026-05-28 16:14:58 +01:00
rad-patch-update.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-patch-via-push.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-patch.md radicle-cli/terminal: Add patch target ref to rad patch show 2026-06-09 11:37:26 +02:00
rad-publish.md cli/id: Print Parent of Revision 2026-05-22 09:09:01 +01:00
rad-push-and-pull-patches.md cli: Improve formatting of Node IDs and addresses 2025-07-18 21:44:06 +01:00
rad-remote.md cli: Improve formatting of Node IDs and addresses 2025-07-18 21:44:06 +01:00
rad-review-by-hunk.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-seed-and-follow.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-seed-many.md cli: Changed the default scope from all to followed for clone and seed 2026-02-16 21:39:11 +01:00
rad-seed-policy-allow-no-scope.md cli: Warn user about implicit seeding policy 2026-02-16 21:39:11 +01:00
rad-seed-scope.md cli: Don't override existing seeding scope in `rad seed` 2026-03-17 10:31:29 +00:00
rad-self.md cli/test: Clean up testing environment 2025-10-13 08:56:23 +01:00
rad-sync-without-node.md cli: Changed the default scope from all to followed for clone and seed 2026-02-16 21:39:11 +01:00
rad-sync.md radicle/sigrefs/git: Use stable `RAD_LOCAL_TIME` 2026-03-25 08:07:49 +00:00
rad-unseed-many.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-unseed.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
rad-warn-ipv6.md radicle: Warn less aggressively on IPv6 addresses 2026-05-21 14:52:35 +01:00
rad-warn-old-nodes.md cli: Update warning for new bootstrap node names 2026-04-27 18:20:25 +02:00
rad-watch.md repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00