Skip to content

mcpx: elicitation storage is readable by any local user and never pruned; elicitation UI and response validation rows #1954

Closed

Description

@dezren39

Relocated from dezren39/darwin-nix#255 on 2026-10-28 (placement audit): mcpx's single source lives in developing-today/code (pkgs/mcpx); re-home tracked at #309. Original body below; issue references inside it are historical (dezren39/nix numbering).

Gap keys elicit-storage (5 rows), elicit-ui (7), elicit-validation (4) in docs/spec/conformance-matrix.md: the question broker's store is not permission-restricted and grows without pruning; the CLI/TUI answering surface does not show which server asks / allow review per the elicitation UI SHOULDs; accepted content is not validated against requestedSchema before relaying upstream.

Acceptance criteria

  • The elicitation broker store is permission-restricted to the owner (no world/group read) and this is verified on disk.
  • Stored elicitations are pruned (age or count bound, documented).
  • The answering surface shows which server is asking and allows review per the elicitation UI rows.
  • Accepted content is validated against requestedSchema before being relayed upstream.

Activity

  1. developing-today commented on Oct 28, 2026

    @developing-today
    Contributor
  2. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    History carried over from dezren39/darwin-nix#255 (verbatim, oldest first):


    @dezren39 · 2026-10-27T15:35:54Z

    Intake review

    Fleet monitor intake pass, 2026-10-27 (repo-fleet-monitor).

    Related: the 2026-09-30 mcpx conformance set — parent analysis #252, siblings #253, #254, #255, #256, #257, #258, #259 (filed together from docs/spec/conformance-matrix.md in dezren39/nix). Treat the set as one body of work; do not re-file per-gap issues.

    Notes: Filed as kind/security at priority normal (monitor judgment): the storage half (readable by any local user, never pruned) is a genuine local information-exposure issue, distinct from the UI/validation conformance rows bundled with it. 16 rows total (storage 5, UI 7, validation 4).

    Risks: Permission tightening that breaks the broker's own readers — verify the daemon and CLI still read the store after the change.

    Suggested approach: storage permissions + pruning first (the security substance), then schema validation, then UI rows.

  3. added
    kind/securitySecurity issue or security hardening
    priority/normalOrdinary priority (the default)
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)
    queue/queuedHas a queued task in the Supabase agent queue
    on Oct 28, 2026
  4. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Oct 29, 2026
  5. 17 remaining items

  6. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    event: done
    task: 3250 (repo-health-code-pilot, lane D) — completed, outcome pr_opened
    pr: #2646
    state: Criterion 1 (pruning) verified ALREADY DONE on main via #1677 — pruneTerminal on Broker.Open, bounds in internal/defaults (ElicitRetentionMaxAge / ElicitRetentionMaxTerminalRows), tests in internal/elicit/prune_test.go; no change made. Criterion 2 implemented in PR 2646 @ a9cc5f4: Broker.Respond validates accepted form content against the question's requestedSchema (internal/schemaval) before recording/relay; mismatch refused with failing paths, question stays pending; uncompilable schema recorded unvalidated (asker's defect, mirroring mcpclient). Laptop: full internal/elicit tests pass, vet clean. Remaining: CI green on PR 2646 + merge (fleet CI jam permitting); criterion 3 (elicitation UI rows) stays on this issue.

  7. dezren39 commented on Oct 31, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · #1678 Phase 3 evidence (queue task 3662)

    The review-first elicit surface from #1678 has landed as PR #3011:

    Remaining slice for this issue: server-relay validation of received elicitation data — elicitation-server-validate-received-data — i.e. the receiving/relay side validating answers, beyond the client surface above. (Broker-side validation of accepted form answers against the requested schema is tracked separately on this issue's PR #2646.) This comment is evidence only; #1954 stays open for that remaining slice.

  8. added
    queue/queuedHas a queued task in the Supabase agent queue
    source/creatorFiled by the new-issue-creator job
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  9. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done (triaged → already implemented; closing with evidence)

  10. removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  11. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: triaged (coverage pass)
    Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
    Found via: coverage pass 2026-11-03

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

Metadata

Metadata

Assignees

Labels

app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)effort/lLarge: multi-day or open-ended; expect staged check-inskind/securitySecurity issue or security hardeningmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)queue/queuedHas a queued task in the Supabase agent queuesource/creatorFiled by the new-issue-creator jobstatus/needs-triageNot yet triaged; needs a first looktask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions