Skip to content

List and forget the CyberWealth key like a personal fact - #114

Merged
leonardoaraujosantos merged 1 commit into
mainfrom
feat/cyberwealth-key-as-fact
Sep 29, 2026
Merged

leonardoaraujosantos merged 1 commit into
mainfrom
feat/cyberwealth-key-as-fact

Conversation

@leonardoaraujosantos

Copy link
Copy Markdown
Contributor

A CyberWealth key saved in a DM now behaves like the other personal facts.

  • Listed: "o que você sabe sobre mim?" / "what do you know about me?" in a DM includes Chave do CyberWealth: …Nd4k / CyberWealth key: …Nd4k. A channel listing never looks the key up, so it can't mention it.
  • Show one: "qual é a minha chave do cyberwealth?" / "what's my cyberwealth key?" answers masked in a DM, says none is saved otherwise, and gives the fixed DM-only reply in a channel either way.
  • Forget: "esqueça/apague minha chave do cyberwealth" / "forget my cyberwealth key" deletes only that key, confirmed in the asker's language. "Forget everything you know about me" now deletes it with the facts. /forget and Delete everything are unchanged.
  • Replace: a new key replaces the old one (already an upsert; now tested end to end).

Implementation: new SHOW_KEY/FORGET_KEY fact actions in fact_intent (same precedence as the fact patterns); PersonalKeyStore.held reads only last4/created_at, never the ciphertext, and forget takes an optional service. AskService.attach_personal_keys is wired from the bot entrypoint.

Tests: unit (PT/EN routing, masking, channel parity, SHOW built with a store whose key_for raises, wiring through build_bot), integration (held under an unopenable secrets key, per-service forget), e2e (listed masked in a DM and absent from a channel listing, NL forget keeps the email, replace). README, docs/operations.md, capabilities text (EN/PT) and the add-cyberwealth-personal-keys spec and tasks are updated.

"What do you know about me?" now lists a held CyberWealth key by its last
four characters in a DM (never mentioned in a channel), "what's my
CyberWealth key?" answers the same way, and "forget my CyberWealth key" /
"esqueça minha chave do cyberwealth" deletes that key alone.

Showing reads only the stored last4 column (PersonalKeyStore.held), so the
sealed key is never opened to answer; forget takes an optional service.
New SHOW_KEY/FORGET_KEY fact actions keep the key out of FactKind and out
of the "kind None means every fact" path. Docs, capabilities text and the
add-cyberwealth-personal-keys change are updated.
@leonardoaraujosantos
leonardoaraujosantos merged commit 3336040 into main Sep 29, 2026
2 checks passed
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