feat(floot): ingest secrets as capabilities, not transcript text #25

Open
floot wants to merge 0 commits from feature/secret-ingestion into feat/hosted-endo-management
Owner

Closes #22

Summary

  • Floot sessions get requestSecret and writeSecret. The operator pastes into a UI box; the model receives only a capability handle.
  • EndoHost.writeSecret writes credential material to a mount without revealing the bytes.
  • Form fields can opt in (asCredential / audience / secretKind) so submit mints a credential cap instead of storing the string.
  • Prompts tell the agent never to ask for secrets in chat or put them in exec.

Test plan

  • packages/floot/test/secret-request.test.js (3 passing)
  • After deploy: in Floot, ask for a GitHub token; confirm a paste box appears and the assistant only reports a petname
  • Pass that handle to provideGitRemote / writeSecret
  • Confirm the secret does not appear in session history or tool args
Closes https://git.goooooo.ooo/floot/endo/issues/22 ## Summary - Floot sessions get `requestSecret` and `writeSecret`. The operator pastes into a UI box; the model receives only a capability handle. - `EndoHost.writeSecret` writes credential material to a mount without revealing the bytes. - Form fields can opt in (`asCredential` / `audience` / `secretKind`) so submit mints a credential cap instead of storing the string. - Prompts tell the agent never to ask for secrets in chat or put them in exec. ## Test plan - [x] `packages/floot/test/secret-request.test.js` (3 passing) - [ ] After deploy: in Floot, ask for a GitHub token; confirm a paste box appears and the assistant only reports a petname - [ ] Pass that handle to `provideGitRemote` / `writeSecret` - [ ] Confirm the secret does not appear in session history or tool args
feat(floot): ingest secrets as capabilities, not transcript text
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / familiar-bundle (pull_request) Has been cancelled
CI / test (pull_request) Has been cancelled
CI / test-1 (pull_request) Has been cancelled
CI / test-2 (pull_request) Has been cancelled
CI / test-3 (pull_request) Has been cancelled
CI / sandbox-drivers (pull_request) Has been cancelled
CI / test-async-hooks (pull_request) Has been cancelled
CI / cover (pull_request) Has been cancelled
CI / cover-1 (pull_request) Has been cancelled
CI / test262 (pull_request) Has been cancelled
CI / test262-1 (pull_request) Has been cancelled
CI / test-hermes (pull_request) Has been cancelled
CI / check-action-pins (pull_request) Has been cancelled
CI / viable-release (pull_request) Has been cancelled
CI / viable-release-1 (pull_request) Has been cancelled
CI / test-xs (pull_request) Has been cancelled
CI / build-xsnap (pull_request) Has been cancelled
CI / test-ironhorse (pull_request) Has been cancelled
CI / test-ocapn-python (pull_request) Has been cancelled
CI / build-wasm (pull_request) Has been cancelled
Test project mutual dependency versions / build (pull_request) Has been cancelled
Workflow security audit / zizmor (pull_request) Has been cancelled
a48bea2b35
Give the operator a paste box (and an opt-in form field) that mints a
daemon credential. The agent receives only a handle it can pass to
provideGitRemote or writeSecret, so tokens never enter chat, exec, or
the model transcript.
fix(floot): bind secret submissions to acceptors
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / familiar-bundle (pull_request) Has been cancelled
CI / test (pull_request) Has been cancelled
CI / test-1 (pull_request) Has been cancelled
CI / test-2 (pull_request) Has been cancelled
CI / test-3 (pull_request) Has been cancelled
CI / sandbox-drivers (pull_request) Has been cancelled
CI / test-async-hooks (pull_request) Has been cancelled
CI / cover (pull_request) Has been cancelled
CI / cover-1 (pull_request) Has been cancelled
CI / test262 (pull_request) Has been cancelled
CI / test262-1 (pull_request) Has been cancelled
CI / test-hermes (pull_request) Has been cancelled
CI / check-action-pins (pull_request) Has been cancelled
CI / viable-release (pull_request) Has been cancelled
CI / viable-release-1 (pull_request) Has been cancelled
CI / test-xs (pull_request) Has been cancelled
CI / build-xsnap (pull_request) Has been cancelled
CI / test-ironhorse (pull_request) Has been cancelled
CI / test-ocapn-python (pull_request) Has been cancelled
CI / build-wasm (pull_request) Has been cancelled
Test project mutual dependency versions / build (pull_request) Has been cancelled
Workflow security audit / zizmor (pull_request) Has been cancelled
649ce44526
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / familiar-bundle (pull_request) Has been cancelled
CI / test (pull_request) Has been cancelled
CI / test-1 (pull_request) Has been cancelled
CI / test-2 (pull_request) Has been cancelled
CI / test-3 (pull_request) Has been cancelled
CI / sandbox-drivers (pull_request) Has been cancelled
CI / test-async-hooks (pull_request) Has been cancelled
CI / cover (pull_request) Has been cancelled
CI / cover-1 (pull_request) Has been cancelled
CI / test262 (pull_request) Has been cancelled
CI / test262-1 (pull_request) Has been cancelled
CI / test-hermes (pull_request) Has been cancelled
CI / check-action-pins (pull_request) Has been cancelled
CI / viable-release (pull_request) Has been cancelled
CI / viable-release-1 (pull_request) Has been cancelled
CI / test-xs (pull_request) Has been cancelled
CI / build-xsnap (pull_request) Has been cancelled
CI / test-ironhorse (pull_request) Has been cancelled
CI / test-ocapn-python (pull_request) Has been cancelled
CI / build-wasm (pull_request) Has been cancelled
Test project mutual dependency versions / build (pull_request) Has been cancelled
Workflow security audit / zizmor (pull_request) Has been cancelled
This branch is already included in the target branch. There is nothing to merge.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/secret-ingestion:feature/secret-ingestion
git switch feature/secret-ingestion

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch feat/hosted-endo-management
git merge --no-ff feature/secret-ingestion
git switch feature/secret-ingestion
git rebase feat/hosted-endo-management
git switch feat/hosted-endo-management
git merge --ff-only feature/secret-ingestion
git switch feature/secret-ingestion
git rebase feat/hosted-endo-management
git switch feat/hosted-endo-management
git merge --no-ff feature/secret-ingestion
git switch feat/hosted-endo-management
git merge --squash feature/secret-ingestion
git switch feat/hosted-endo-management
git merge --ff-only feature/secret-ingestion
git switch feat/hosted-endo-management
git merge feature/secret-ingestion
git push origin feat/hosted-endo-management
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
floot/endo!25
No description provided.