8000 T26 — Store, list and remove secrets with min secret under proxy-only access · Issue #2287 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

T26 — Store, list and remove secrets with min secret under proxy-only access #2287

Closed

Description

@norrietaylor

Task

slice size difficulty model who estimated lines
Keychain secrets by reference L needs care strongest an agent 860 (380 code, 480 tests)

min secret set claude prints only the identifier, and min secret list shows its metadata and no value.

Covers:

  • BEP-050
  • BEP-051
  • BEP-052
  • BEP-053

Layers:

  • cli:
    • crates/minimal/src/cli.rs: min secret set | list | rm [--store <s>]
    • crates/minimal/src/cmd/mod.rs: dispatch and module line
    • crates/minimal/src/cmd/secret.rs (new): set, list, rm per BEP-050, BEP-052 and BEP-053
    • cargo nextest run -p minimal secret_set_stores_in_keychain_and_prints_id_only
    • cargo nextest run -p minimal secret_set_refuses_value_argument_and_env_flag
    • cargo nextest run -p minimal secret_set_without_tty_or_stdin_fails_immediately
    • cargo nextest run -p minimal secret_set_refuses_gatehouse_store
    • cargo nextest run -p minimal secret_list_shows_metadata_without_values
    • cargo nextest run -p minimal secret_rm_removes_item
  • store:
    • crates/bep/src/store.rs (new): Keychain store items with the BEP-051 access control
    • crates/bep/src/lib.rs: module line
    • cargo nextest run -p minimal secret_item_acl_admits_proxy_only
    • cargo nextest run -p minimal secret_set_refuses_when_proxy_binary_absent

Waits on:

Plan block
### T26 — Store, list and remove secrets with min secret under proxy-only access
  slice: S3
  kind: task
  covers: BEP-050, BEP-051, BEP-052, BEP-053
  size: L
  est: 380 code, 480 tests
  executor: agent
  difficulty: needs care
  model: strongest
  diagnostics: `min secret set <id> <value>` is refused with "min secret set reads the value from the terminal or standard input, never from an argument or an environment flag." on stderr, pinned by secret_set_refuses_value_argument_and_env_flag; `min secret list` shows store, authorities, injection form, consent rule and whether the proxy's access entry is present, never a value
  observability: one info log line per set and remove naming the store and the identifier, never the value
  layers:
    - cli:
      - crates/minimal/src/cli.rs: `min secret set | list | rm [--store <s>]`
      - crates/minimal/src/cmd/mod.rs: dispatch and module line
      - crates/minimal/src/cmd/secret.rs (new): `set`, `list`, `rm` per BEP-050, BEP-052 and BEP-053
      test: cargo nextest run -p minimal secret_set_stores_in_keychain_and_prints_id_only
      test: cargo nextest run -p minimal secret_set_refuses_value_argument_and_env_flag
      test: cargo nextest run -p minimal secret_set_without_tty_or_stdin_fails_immediately
      test: cargo nextest run -p minimal secret_set_refuses_gatehouse_store
      test: cargo nextest run -p minimal secret_list_shows_metadata_without_values
      test: cargo nextest run -p minimal secret_rm_removes_item
    - store:
      - crates/bep/src/store.rs (new): Keychain store items with the BEP-051 access control
      - crates/bep/src/lib.rs: module line
      test: cargo nextest run -p minimal secret_item_acl_admits_proxy_only
      test: cargo nextest run -p minimal secret_set_refuses_when_proxy_binary_absent
  produces:
    - crates/bep/src/store.rs
  consumes: none
  proof: `min secret set claude` prints only the identifier, and `min secret list` shows its metadata and no value.
  depends on:
    - blocked by #2280

Activity

  1. added
    kind:taskA task the plan skill rendered; the body carries ## Task
    size:L500 to 900 net lines; one PR, and the ceiling
    model:strongestThe strongest model available: unknown ground, or large work that needs care
    on Oct 17, 2026
  2. minimal-foundry commented on Oct 24, 2026

    @minimal-foundry
    Contributor

    Done. #2522 merged.

    branch agent/2287-store-list-and-remove-secrets-with-min-secret-un · epic #1501 · PR #2522

    round outcome job
    1 pushed 36700608
    2 pushed 077e0604
    3 pushed ee6d3532
    4 pushed 36a735a7
    5 pushed 09c12ce8
    6 pushed 11086647
    7 pushed 0b7d047b
    8 pushed c193cd8d
    9 pushed 7d4f84b5

    Updated 2026-10-25T17:35:24.861Z.

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

    kind:taskA task the plan skill rendered; the body carries ## Taskmodel:strongestThe strongest model available: unknown ground, or large work that needs caresize:L500 to 900 net lines; one PR, and the ceiling

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0