Skip to content

Embedder-API polish: ExecuteOptions callback type, ToolCtx::backend() test burden, tree --json metadata #200

Description

@tobert

P3 (embedder surface, none blocking):

  • ExecuteOptions callback type is awkward: Option<&mut (dyn FnMut(&ExecResult) + Send)> is hard to call — a trait-object alias or dedicated Callback trait would smooth it.
  • ToolCtx::backend() forces a full KernelBackend mock for out-of-tree tool tests (~16 async methods) even for I/O-free tools. Options: (a) a #[cfg(feature = "test-util")] no-op harness in kaish-tool-api (less invasive), or (b) backend() returning Option<…>. Revisit when the first external tool bundle wants unit tests.
  • Recursive/tree --json carries structure but no size/type metadata: tree --json / ls -R --json (without -l) serialize shape with null leaves — the tree-JSON shape has nowhere to hang per-node metadata. Fix is a shape decision: table-with-children, or a per-node metadata slot.

Migrated from docs/issues.md (P3) in the 2026-07-16 sweep.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions