Skip to content

Keys per namespace: key_close, D7, first policy; remove carried_over; the two notices #149

Closed as not planned

Description

@Hafeok

Issue 6 of ledger/prd/namespace-independence-prd.md §6, opened on the principal's instruction (session ledger/sessions/2026-10-namespace-layout-authority.md).

Cites. PRD §3.3 (Keys).

Size. M. Depends on. Issue 5.

Appendix C note. Yes.

Rulings carried. 47, 69 (a close in every namespace a writer holds is one change-set per namespace in one commit; a key closed in one namespace and open in another is a notice, never a finding).

What it builds. The functions of authority::key_close compare namespace: a close ends the key in its own namespace only (LP-6.32); "a key belongs to one principal" and "a closed key is never bound again" are judged within the namespace. The genesis holder's first key in a namespace is that namespace's self-bound binding, trusted by today's rule for the first namespace; signing::check::carried_over and the store-wide branch of authority::filing::may_file go away; a first policy is signed by a key trusted in its own namespace only. Two repository notices: a key closed in one namespace and open in another; one key bound to two principals in two namespaces. Protocol: LP-4.31, LP-4.37, LP-4.39 (with ruling 101's wording), LP-4.13, LP-6.32 loses its mark; Appendix B row; Appendix C note. ledger-cli/tests/key_across_namespaces.rs's six tests are rewritten as §3.11 says. The step also carries the test that no agent identity and no non-interactive session can produce a key close.

Acceptance criteria (§4.1).

  • AC-47 (second bullet). A rotate in A leaves B's acceptances, review items and allowed_signers unchanged.

Related open issues: #104 (part 1, implemented store-wide; this issue narrows it to the namespace) and #105 (part 2; the writer half is issue 8 of the PRD).

Activity

  1. Hafeok commented on Nov 3, 2026

    @Hafeok
    CollaboratorAuthor

    Closed as not carried under D1.24`` and the definition's chapter 8:``` the Rust tool is frozen at rust-final and its tree left `main` in #166 (`53bd547`). This concerns the Rust ledger (its keys, namespaces or authority), which is Writ's authority graph now. The rewrite holds no key and no grant, and `writ import` reads `.decisions/` once, at the tag. Disposition approved on #165.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Effort

    None yet

    Progress

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions