Skip to content

A diagnostics API for provider developers #507

Open

Description

@David-Noble-at-work

This is the one piece with no API yet. The spec says where diagnostics land (OTel Logs at DEBUG/TRACE,
scope-classified, span-correlated) but not what a provider developer calls to emit one. The status
companion lists it as "Not implemented — a new API".

It has a waiting consumer: the standing convention that every ignored error carries
diagnose-ignored-error: <reason>; see 2.8 precisely because there is nowhere to log it yet
(2.8 §Ignored errors are diagnostics).
Those comments become calls.


Epic: #449 · Feature: #504

Activity

  1. David-Noble-at-work commented on Aug 26, 2026

    @David-Noble-at-work
    ContributorAuthor

    A concrete first consumer exists as of 2026-08-26, ahead of this issue.

    starlarkbridge.Runtime.reportSelection (pkg/op/starlarkbridge/runtime.go) narrates what a runtime's module surface admitted, refused, and never considered:

    planning runtime (hermetic): 8 of 17 modules contribute 39 of 123 methods
      full      function(1) json(4) platform(5) regex(8) ui(6) yaml(3)
      partial   file(4/25) plan(8/12)
      none      appnet archive encryption git pkg powershell service shell template
                — no deterministic claim; reachable as plan.<module>.<method>
      n/a       flow mem (no methods)
    

    It is diagnostics by 2.8's own test — a framework decision an author consults when a method is missing, not user-facing progress — but it goes to status.Narrator today because this API does not exist. The call site carries TODO(#507).

    Useful as a design target because it exercises three things at once: it is emitted once at construction rather than per-operation, it is structured (four buckets over a provider/count pair) rather than a formatted string, and its audience is a package author debugging a missing method — the exact reader this issue names.

  2. David-Noble-at-work commented on Sep 5, 2026

    @David-Noble-at-work
    ContributorAuthor

    A second waiting consumer, and the one the architecture already names: the module-selection banner (reportSelection, runtime.go:455 TODO(#507)). It is the only narration star emits before argv is parsed, so it is the one line --silent cannot reach — #828 has the wiring. When this API lands it becomes a DEBUG diagnostic and the question goes away.

  3. David-Noble-at-work commented on Sep 5, 2026

    @David-Noble-at-work
    ContributorAuthor

    #829 is the extension-loading consumer for this API, ruled 2026-09-05: failures narrate, everything else logs.

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

Metadata

Metadata

Labels

Epic:EventingEventing, narration, and the control planetaskImplementation work item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions