Skip to content

Workbench inspector must not infer resultSchema declaration or validation from result presence #688

Description

@ScriptedAlchemy

Priority and scope

P2 — incorrect user-facing schema provenance. Narrow follow-up to #682 and #600; do not reopen the completed #592/#682 evidence-map work.

Audited/current main: b435f7b9179271cbff81d3e40d14ee342cbd65dd.

Evidence level: the incorrect display condition was inspected directly in source. The reviewer has not executed the proposed browser regression.

Problem

SchemaTab in route-inspector.tsx uses invocation?.result !== undefined to display:

This route exports a resultSchema; its parsed value is under Structured result.

A structured result is not evidence that a route exports resultSchema, nor that a declared schema validated/transformed that value. A route returning a structured result without exporting a result schema can therefore receive a false declaration/validation claim.

Why this is separate from #682

#682 was closed with a production-file/test evidence map and explicitly no code change. That map establishes existing manifest/adapter provenance and inspection surfaces; it does not change this result-presence conditional or prove its specific user-facing assertion.

Context, Providers, Timings, Projection, compiler contracts, and declared-state metadata already exist. This issue does not claim they are absent or request another inspector metadata store.

Regression case

Create a supported route returning structured Agent.Result data without exporting resultSchema. Invoke it and render Inspector → Schema. Assert that the inspector does not claim a result schema was declared or used.

Acceptance

  • Derive schema declaration and validation/transformation status only from canonical compiler/execution evidence, never from result presence.
  • Distinguish absent, unknown, and statically unprojectable schema information; use neutral text when sufficient evidence is unavailable.
  • Cover a structured result without a schema, a declared schema with a valid result, a validation failure, an absent result, and a richer statically unsupported schema.
  • Assert rendered user-facing text in component/browser coverage, not only helper output or presence of the Schema tab.
  • Preserve existing compiler-derived contracts and observed Context/Providers/Projection views. Reuse routeManifestFor()/artifact contracts rather than creating a parallel metadata model.
  • Keep declaration, successful validation, and availability of a structured result conceptually separate.
  • Update relevant English/Chinese documentation only where it currently overstates the implemented guarantee.

Test and implementation owners

  • packages/workbench/src/application/route-inspector.tsx
  • packages/agent-bundle/src/dev/routes/route-manifest.ts
  • packages/workbench/tests/route-workspace.test.ts
  • existing Workbench browser acceptance, including packages/workbench/tests/audiobook-curator.acceptance.e2e.test.ts where appropriate

Non-goals

No ORM, arbitrary provider-object serialization, raw database editor, disclosure of runtime state/secrets, second evidence store, wholesale inspector rewrite, or reopening #682 merely because this narrower UI defect remains.

Activity

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions