nbapi missing build <id> subcommand — individual build lookup and status_message not surfaced #3

Closed
opened 2026-06-06 12:23:50 +03:00 by oleks · 1 comment
Owner

The nixbuild.net HTTP API exposes individual build records at GET /builds/<id>, which includes a status_message field containing the human-readable build error (e.g. "builder failed with exit code 1"). This is valuable for diagnosing CI failures without needing the full log.

Currently nbapi has no dedicated subcommand for this — users must use nbapi raw /builds/<id> which is not discoverable. Add:

nbapi build <build_id>     # fetch one build record (id, status, status_message, drv path, outputs)

Also consider adding --drv <path> to nbapi builds to filter by derivation path, so users can go from a nix error message directly to the build record:

nbapi builds --drv /nix/store/vvfz...-python3.13-mempalace-3.3.6.drv

Discovery gap found during: mempalace CI failure on nixbuild.net — the status_message on the HTTP build record was sufficient to show the drv failed, but the agent went to nbshell 'builds log <id>' instead because nbapi build <id> doesn't exist.

Note: actual build logs (stdout/stderr) are only available via nbshell 'builds log <id>' — the HTTP API returns 404 for /builds/{id}/log. That's a separate limitation of the nixbuild.net API itself.

The nixbuild.net HTTP API exposes individual build records at `GET /builds/<id>`, which includes a `status_message` field containing the human-readable build error (e.g. "builder failed with exit code 1"). This is valuable for diagnosing CI failures without needing the full log. Currently `nbapi` has no dedicated subcommand for this — users must use `nbapi raw /builds/<id>` which is not discoverable. Add: ``` nbapi build <build_id> # fetch one build record (id, status, status_message, drv path, outputs) ``` Also consider adding `--drv <path>` to `nbapi builds` to filter by derivation path, so users can go from a nix error message directly to the build record: ``` nbapi builds --drv /nix/store/vvfz...-python3.13-mempalace-3.3.6.drv ``` **Discovery gap found during:** mempalace CI failure on nixbuild.net — the `status_message` on the HTTP build record was sufficient to show the drv failed, but the agent went to `nbshell 'builds log <id>'` instead because `nbapi build <id>` doesn't exist. Note: actual build logs (stdout/stderr) are only available via `nbshell 'builds log <id>'` — the HTTP API returns 404 for `/builds/{id}/log`. That's a separate limitation of the nixbuild.net API itself.
Author
Owner

Fixed in main (commits 2f03a04–e167c29): added nbapi build <id> subcommand, documented nbshell 'builds log <id>' in ops.md and nixbuild-usage skill, added routing triggers for build log / remote builder output queries, added .markdownlint-cli2.yaml. Version bumped to 0.2.0.

Fixed in main (commits 2f03a04–e167c29): added `nbapi build <id>` subcommand, documented `nbshell 'builds log <id>'` in ops.md and nixbuild-usage skill, added routing triggers for build log / remote builder output queries, added `.markdownlint-cli2.yaml`. Version bumped to 0.2.0.
oleks closed this issue 2026-06-06 12:52:28 +03:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: oleks/claude-plugin-nixbuild#3