Skip to content

feat(persona): who holds an old value, where an edit landed, what a context may call a face - #264

Merged
stormer78 merged 1 commit into
mainfrom
feat/persona-lifecycle-answers
Sep 21, 2026
Merged

stormer78 merged 1 commit into
mainfrom
feat/persona-lifecycle-answers

Conversation

@stormer78

Copy link
Copy Markdown
Contributor

Adds UI for the persona lifecycle fields published in @openvtc/trust-tasks 0.19.13 (trustoverip/dtgwg-trust-tasks-tf#533). The agent side is OpenVTC/verifiable-trust-infrastructure#1597. Against an agent without that change, the new fields are simply absent and every screen falls back to saying nothing new.

Released

  • Per claim: each disclosed claim now shows whether the verifier's copy is still current.
  • Out-of-date parties: above the table, a list of everyone holding a value the holder has since changed.
    • Grouped by verifier, context and persona.
    • Only the latest disclosure to each counts, so someone already sent the new value isn't listed.
  • removed is kept separate from changed. There's nothing newer to send, and the verifier keeps what it received.
  • unknown is never shown as current. It comes from an older agent or a record made before fingerprints existed.
  • Model: manager/disclosure-currency.ts. The pane only draws.
  • Not included — a one-tap "send them the new value" button. A disclosure is a context-side preview → present step, which the console doesn't perform. The copy says to present the new value again from that context.

Attribute save

  • Says where the edit landed, from refreshed / heldByPin: how many places and contexts now show the new value, and how many faces pin the earlier one.
  • The note is accent unless it also carries a correlation warning.

Wearing a face

  • New field for what the context may call the face. The copy says the context never sees the holder's own name for it.
  • The form loads the existing label. binding/set replaces the whole binding, so a face change would otherwise wipe the label. A rendered test pins this; I checked it fails with the load removed.
  • personaBindingSet gains label.

Dependency

@openvtc/trust-tasks is raised to ^0.19.13 at the root and in core, so only one copy is installed. The lockfile changes that one package and nothing else. A local npm re-resolve had dropped the libc fields on native optional dependencies, which Linux installs use to pick the right native package, so I edited it by hand and checked it with npm ci.

Checks

  • npm run lint
  • npm test: 1536 passed, 0 failed. New:
    • manager-disclosure-currency.test.mts (5 tests)
    • a core label payload test
    • a rendered label-preservation test
  • npm run build

…ontext may call a face

Uses the persona lifecycle members published in @openvtc/trust-tasks
0.19.13 (trustoverip/dtgwg-trust-tasks-tf#533), served by the agent from
OpenVTC/verifiable-trust-infrastructure#1597.

Released view: each disclosed claim says whether it is still current
(claimCurrency). Above the table, the parties holding a value the holder
has since changed -- grouped by verifier, context and persona, and
decided by the latest disclosure to each, so a party already sent the
new value is not listed. `removed` is kept apart from `changed`: there
is nothing newer to send. `unknown` (an older agent, or a record from
before fingerprints) is never read as current.
disclosure-currency.ts holds the model; the pane only draws.

Attribute save: says where the edit landed -- places and contexts
refreshed, and faces that pin the earlier value -- from the agent's
refreshed / heldByPin. An older agent's answer claims nothing.

Wearing a face: a field for what the context may call it, with copy that
the context never sees the holder's own name for the face. The form
loads the existing label, because binding/set replaces and a face change
would otherwise clear it; a rendered test pins that and fails without
it. personaBindingSet gains `label`.

@openvtc/trust-tasks requirement raised to ^0.19.13 at the root and in
core so one copy is installed. The lockfile is edited for that one
package only; a local npm re-resolve dropped the libc fields of the
native optional dependencies, which Linux CI relies on.

Signed-off-by: Glenn Gore <glenn.g@affinidi.com>
@stormer78
stormer78 merged commit dd54edc into main Sep 21, 2026
4 checks passed
@stormer78
stormer78 deleted the feat/persona-lifecycle-answers branch September 21, 2026 11:17
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.

1 participant