Skip to content

NAP-UPLOAD: Add rail introspection - #76

Merged
dskvr merged 1 commit into
nap-uploadfrom
nap-upload-info
Jun 28, 2026
Merged

NAP-UPLOAD: Add rail introspection#76
dskvr merged 1 commit into
nap-uploadfrom
nap-upload-info

Conversation

@dskvr

@dskvr dskvr commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds draft upload.info() to NAP-UPLOAD because optional rail introspection is valid when it stays advisory. Napplets can inspect supported rails and coarse limits, while upload(request) without rail remains the simple default path where the runtime chooses according to user/runtime policy.

Changes

  • Adds info to the API surface with UploadInfo and UploadRailInfo schemas.
  • Adds upload.info / upload.info.result wire messages and an example.
  • States that info() is optional and MUST NOT be required before upload.
  • Clarifies explicit request.rail handling and policy denied errors.
  • Adds a security note for exposing rail and limit metadata.

Downstream

No dependency or registry change. This is a scoped amendment on top of nap-upload for implementations that need runtime-owned upload rail discovery.

NAP-UPLOAD needs a way for napplets to inspect supported upload rails and coarse limits without making rail choice mandatory. The new info operation is advisory, keeps default rail selection in the shell when request.rail is omitted, and lets explicit rail requests fail through the existing policy boundary.

Constraint: Upload rail selection and credentials remain runtime-owned.
Rejected: Require info() before upload(request) | would make introspection part of the default flow and weaken runtime-owned defaults.
Rejected: Expose server URLs or credentials | would leak shell configuration across the seam.
Confidence: high
Scope-risk: narrow
Directive: Keep upload.info advisory; do not turn it into a mandatory capability negotiation step.
Tested: git diff --check; targeted rg consistency check for upload.info, UploadInfo, request.rail, unsupported rail, and policy denied wording.
Not-tested: Runtime implementation; spec-only change.
@dskvr
dskvr merged commit ef147c9 into nap-upload Jun 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant