GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Make every --json top-level error a {code, message} object (#704) by mikolalysenko · Pull Request #1027 · SocketDev/socket-patch

Conversation

@mikolalysenko

@mikolalysenko Mikola Lysenko (mikolalysenko) commented Oct 7, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Collaborator

What and why

On 2026-10-07 the maintainer chose option 1 on #704 ("Option 1 is clearly the correct choice. Implement proposed solution."). Every --json failure now writes the top-level error as a {code, message} object, the same shape as EnvelopeError. This is a breaking change for v5.0. It also covers register row C53: usage errors (exit 2) follow rule (b), so under --json they print a coded error on stdout.

Changes

  • Shared helpers in src/json_envelope.rs: set_error, set_error_keep_status, legacy_error / print_legacy_error, and usage_error(cmd, json, code, msg) -> i32.
    • Under --json, usage_error prints a full envelope for apply, list, remove, repair, vendor and vex, and {status, error: {code, message}} for scan, get and rollback.
    • Without --json, it prints Error: … on stderr as before.
  • Guard tests: they fail on a bare return 2; under src/commands (hosted_bundle.rs is exempt), and on a "status": "error" JSON literal whose error is a string or has an errorCode next to it.
  • get: report_error takes a code. The lock failure, the nested-apply error, blob_write_failed and selection_required all use the object form, and the top-level errorCode is gone.
    • New codes: patch_no_applicable_files, offline_unsupported and identifier_invalid.
    • The nested-apply error keeps status: "partial_failure".
  • scan: there is now one hosted error emitter, and every caller passes a code. The discovery failure, --offline, api_batch_failed, the embedded VEX failure, the vendor step and policy_error_json all use the object form.
    • All nine exit-2 sites go through usage_error, with these codes: invalid_args, global_scope_unsupported, path_not_directory, path_glob_no_match, path_glob_invalid, path_outside_repo and invalid_env.
    • New codes: reference_resolve_failed and lockfile_write_failed.
  • rollback: emit_rollback_error(json, code, msg) is now used for every failure, and the inline objects use manifest_not_found, patch_not_found and rollback_failed. A bad glob is a usage error (path_glob_invalid). When a path pattern matches no patched packages, rollback reuses scan's path_glob_no_match.
  • remove, repair, vendor, vex: their exit-2 sites go through usage_error and keep their existing codes.

What users see

  • Scripts that read .error as a string or read the top-level .errorCode must now read .error.message and .error.code.
  • Usage errors from scan, remove and rollback under --json now print a coded JSON error on stdout, not just text on stderr. Under --json, the message goes only to stdout.
  • --global --mode vendored gives error.code: "global_scope_unsupported" on scan, get and vendor.
  • Clap's parse errors are unchanged and still print nothing on stdout.

Docs

  • CLI_CONTRACT.md:
    • It states the single error shape and updates the socket.yml error output and the rollback error key.
    • Every lock_held/errorCode mention is updated.
    • The new codes are added to the code table, and the exit-code 2 row states the stdout rule.
    • It adds a jq recipe for .error.code.
  • docs/migrating-to-v5.md has a new "JSON output" section.
  • CHANGELOG.md is not touched.

Tests

  • New: tests/json_error_shape.rs covers usage errors under --json for scan, get, rollback, remove, repair and vex. It also covers stdout staying empty without --json, the offline refusals, and rollback's manifest_not_found / patch_not_found.
  • Updated: about 70 assertions across 25 test files, plus scripts/backtest-pipenv.py, which compared error against a string.
  • Ran, all passing:
    • cargo test -p socket-patch-cli lib tests (868).
    • All cli_parse_* suites, plus cli, get, scan and rollback.
    • The four get/rollback/scan_hosted/scan_mod covgap suites.
    • e2e_socket_yml_policy, global_scope_project_state, scan_api_retry_e2e, in_process_rollback_hosted, in_process_redirect(_pnpm), e2e_vex, vex_terminal_output and json_error_shape.
    • cargo clippy adds no new warnings.
  • Not run locally: the docker suites and the real package-manager tests (e2e_redirect_vlt_build, mode_migration_vlt, the scripts/ backtests). Their assertions were rewritten the same way; CI will run them.

Review

The review found no correctness bugs. It fixed one wording error in the contract's nested-apply note and stale errorCode comments in the covgap get, scan_hosted and rollback tests.

These are left as is because they predate this branch:

  • rollback's lock failure prints a full Envelope (command: "rollback"), not the {status, error} shape. Its error is already {code, message}.
  • In scan agent mode, a manifest-read or lock failure can print the nested get error document before scan's own, so stdout gets two JSON documents.
  • run_scan picks global_scope_unsupported by matching the error message from resolve_mode_flags. This is fragile. Sibling Decide: warn on and then remove scan --apply/--vendor, and whether --vex stays embedded #966 rewrites the same spot, so expect a conflict in scan/mod.rs.

Closes #704

🤖 Generated with Claude Code


Note

Medium Risk
Breaking JSON contract for all automation that read string error or top-level errorCode; behavior is intentional v5.0 and heavily tested, but downstream scripts must migrate.

Overview
v5.0 breaking change: every --json failure now uses a single top-level error: {code, message} object (the EnvelopeError shape). The old string error and sibling errorCode are removed.

Shared helpers in json_envelope.rs (legacy_error, set_error, usage_error, etc.) centralize emission so get, scan (hosted/policy/vendor), rollback, remove, repair, vendor, and vex cannot drift. Usage errors (exit 2) under --json now print a coded object on stdout for legacy commands (scan, get, rollback) as well as envelope commands. Nested apply failures keep partial_failure while setting error.code. get adds stable codes (patch_no_applicable_files, offline_unsupported, identifier_invalid, …) and stops echoing forced-identifier typos in messages (CodeQL).

CLI_CONTRACT.md documents the unified shape, rollback's error key, expanded code tables, and jq recipes. Tests and backtest scripts were updated (~70 assertions); new tests/json_error_shape.rs guards the contract.

Reviewed by Cursor Bugbot for commit 9a15a0b. Configure here.


Generated by Claude Code

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@mikolalysenko Mikola Lysenko (mikolalysenko) added the arch-refactor PR opened by the scheduled architecture refactor routine label Oct 7, 2026
@mikolalysenko Mikola Lysenko (mikolalysenko) mentioned this pull request Oct 7, 2026
Decide: one shape for the --json top-level error (scan and get emit both a string and a {code, message} object) #704
Closed
4 tasks
github-advanced-security[bot]
github-advanced-security Bot found potential problems Oct 7, 2026
View reviewed changes
Comment thread crates/socket-patch-cli/src/json_envelope.rs Fixed

Uh oh!

There was an error while loading. Please reload this page.

@mikolalysenko Mikola Lysenko (mikolalysenko) mentioned this pull request Oct 7, 2026
Decide: should vex exit 1 on runtime failures, like every other command, instead of 2 #1047
Closed
5 tasks
@mikolalysenko
Mikola Lysenko (mikolalysenko) force-pushed the arch-refactor/704-json-error-object branch from f90a870 to 70c3229 Compare October 7, 2026 16:17
@mikolalysenko Mikola Lysenko (mikolalysenko) mentioned this pull request Oct 7, 2026
rollback --json counters count only the agent leg, so hosted and vendored failures report failed: 0 #1066
Closed
2 tasks
@mikolalysenko

Mikola Lysenko (mikolalysenko) commented Oct 7, 2026

Copy link
Copy Markdown
Collaborator Author

[agent] CI status: all checks green on 70c3229 (555 pass, 6 skipped).

Fixed: CodeQL rust/cleartext-logging (the forced --id/--cve/--ghsa shape error no longer echoes the argument); remove/scan tests now assert the coded usage error on stdout under --json; json_error_shape.rs spawns via hermetic::binary_command (spawn_env_hygiene). These failed on Linux too, not only Windows. Rebased onto origin/main (CLI_CONTRACT.md rollback table conflict: kept both the new error row and main's warnings wording). macOS/sbt/mill/coverage-merge failures were runner/apt infra and passed on rerun.


Generated by Claude Code

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@mikolalysenko Mikola Lysenko (mikolalysenko) mentioned this pull request Oct 7, 2026
Tracking: assert stable codes instead of human sentences in CLI tests, and fold the covgap suites #1089
Open
14 tasks
Mikola Lysenko (mikolalysenko) and others added 7 commits October 7, 2026 19:04
@mikolalysenko @claude
Add shared JSON error helpers and usage_error (#704)
a59afe4
set_error / set_error_keep_status write the top-level error as a
{code, message} object and drop any top-level errorCode. legacy_error and
print_legacy_error give scan, get and rollback the minimal
{status: "error", error: {code, message}} shape. usage_error prints a
self-enforced usage error under --json (a full envelope for envelope
commands, the legacy shape for scan/get/rollback), or Error: on stderr,
and returns 2.

Guard tests fail on a bare `return 2;` in src/commands (outside the
hidden hosted_bundle harness) and on a "status": "error" JSON literal
whose top-level error is a string or carries errorCode.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko @claude
Make every scan/get/rollback --json error a {code, message} object (#704
8d316df
)

get: report_error takes a code (patch_fetch_failed, manifest_unreadable,
manifest_write_failed, patch_no_applicable_files, offline_unsupported);
the lock failure, the nested-apply run error, blob_write_failed and
selection_required carry error: {code, message}; top-level errorCode is
gone. The nested-apply error keeps status partial_failure.

scan: one hosted emitter that requires a code (refusals, lock_held/
lock_io, patch_details_failed, reference_resolve_failed,
lockfile_write_failed); discovery failure, --offline, all-batches-failed
(api_batch_failed), embedded VEX failure, the vendor step and the
socket.yml refusal all write the object.

rollback: emit_rollback_error takes a code; manifest_not_found,
manifest_invalid, manifest_unreadable, patch_not_found,
path_glob_no_match, hosted_wiring_contested, vendor_ledger_missing and
rollback_failed.

Usage errors (exit 2) in scan, get, rollback, remove, repair, vendor and
vex go through json_envelope::usage_error, so under --json they print the
coded error on stdout. Breaking change to the v5.0 JSON contract.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko @claude
Update tests and backtest script for the {code, message} error shape (#…
e4b5819
…704)

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko @claude
Document the single --json error shape in the contract and v5 guide (#…
ba92cea
…704)

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko @claude
Test the coded --json error on usage, offline and rollback failures (#…
15ba36f
…704)

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko @claude
Fix stale errorCode wording in the contract and test docs (#704)
619a666
The contract's nested-apply note said the v5 shape replaced a
"top-level error.code + string error pair"; the replaced pair was the
top-level errorCode. Three test doc comments still described the hosted
lock_held/lock_io envelope as a top-level errorCode with a string error.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko @claude
Fix CI: keep the forced identifier off stderr, align tests with #704
a458ba9
- get: the forced --id/--cve/--ghsa shape error no longer echoes the
  argument. With usage_error printing it, CodeQL traced a test's patch
  uuid into eprintln (rust/cleartext-logging).
- remove/scan tests: under --json the self-enforced usage error is now
  the coded error on stdout, so assert it there instead of on stderr.
- json_error_shape.rs spawns through hermetic::binary_command, as
  spawn_env_hygiene requires.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko
Mikola Lysenko (mikolalysenko) force-pushed the arch-refactor/704-json-error-object branch from 70c3229 to a458ba9 Compare October 7, 2026 23:06
@mikolalysenko

Mikola Lysenko (mikolalysenko) commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator Author

[agent] CI status: rebased onto main (05ecc6e) and force-pushed as a458ba9. One conflict, in CLI_CONTRACT.md's hosted-lock paragraph: kept main's new yarn-berry package.json gate sentence and applied this PR's error: {code, message} wording. Affected CLI tests pass locally (lib, json_error_shape, scan/get/remove/rollback/cli suites, hosted redirect/rollback, covgaps).

CI: 555 checks passed, 6 skipped. The first run was cancelled partway through and I re-ran it. One check is still red: composer 2.10.3 / php 8.5 / macos-latest. It fails in shivammathur/setup-php ("Could not setup PHP 8.5") before any repo code runs. It failed the same way 3 times here, and also on main (run 37708358429, e61a845) and on other PR branches, so it is an infra failure.


Generated by Claude Code

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@mikolalysenko @claude
Merge origin/main into arch-refactor/704-json-error-object
3432d65
Resolve the CLI_CONTRACT.md and socket.yml policy test conflicts keeping
both sides: main's new hosted rows (vlt workspace roots, uv/Poetry
takeover gates, per-purl `patches`, path-flag validation) stay, with
top-level errors described as the {code, message} object. Point the new
vlt workspace-member test at error.message, fix the stale top-level
errorCode wording for eject_refused and managed_install, and note that
the pre-dispatch path-flag check, like clap's parse errors, prints
nothing on stdout under --json.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko
Mikola Lysenko (mikolalysenko) marked this pull request as ready for review October 8, 2026 11:21
@mikolalysenko @claude
Merge origin/main into arch-refactor/704-json-error-object
bf855ba
Resolve the CLI_CONTRACT.md hosted-scan paragraph conflict: keep main's
new gem refusal codes and describe lock_held / lock_io as the
error: {code, message} object.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko

Mikola Lysenko (mikolalysenko) commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator Author

[agent] Merged main, CI green; ready for review.


Generated by Claude Code

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@mikolalysenko

Mikola Lysenko (mikolalysenko) commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator Author

bugbot run


Generated by Claude Code

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

cursor[bot]
cursor Bot reviewed Oct 8, 2026
View reviewed changes

@cursor cursor Bot left a comment •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread crates/socket-patch-cli/src/commands/rollback.rs Resolved

Uh oh!

There was an error while loading. Please reload this page.

@claude
Keep rollback's invalid-glob JSON message verbatim
57dfc10
The path_glob_invalid usage error capitalized the message before handing
it to usage_error, so the --json error.message was capitalized too.
capitalize_first is a human-only transform: every other rollback JSON
error (emit_rollback_error) and scan's path_glob_invalid keep the
verbatim message. Capitalize only for the stderr line, and pin both
forms in the json_error_shape test.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01LD4qUfZKhg2qgt3x9vGeFf
@mikolalysenko

Mikola Lysenko (mikolalysenko) commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator Author

bugbot run


Generated by Claude Code

cursor[bot] reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

cursor[bot]
cursor Bot reviewed Oct 8, 2026
View reviewed changes

@cursor cursor Bot left a comment •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@mikolalysenko Mikola Lysenko (mikolalysenko) mentioned this pull request Oct 8, 2026
A failed VEX write leaves a truncated OpenVEX document at the output path #1144
Closed
5 tasks
@claude
Merge origin/main into arch-refactor/704-json-error-object
6eb0448
Resolve the conflicts with main's staged hosted takeover. hosted.rs now
writes through main's commit_hosted_writes; its failure path keeps the
PR's {code, message} error object and reports lockfile_write_failed.
CLI_CONTRACT.md takes main's staged-takeover text and changes the hosted
lock-failure JSON back to the PR's error object (no top-level errorCode).

Co-Authored-By: Claude <[email protected]>
@mikolalysenko

Mikola Lysenko (mikolalysenko) commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator Author

bugbot run


Generated by Claude Code

cursor[bot] reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

cursor[bot]
cursor Bot reviewed Oct 8, 2026
View reviewed changes

@cursor cursor Bot left a comment •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Tanmay182003
Tanmay Singla (Tanmay182003) approved these changes Oct 8, 2026
View reviewed changes
@mikolalysenko Mikola Lysenko (mikolalysenko) added the Ready for review Agent-verified: mergeable, CI green, Bugbot clean — awaiting human review label Oct 8, 2026
@mikolalysenko

Mikola Lysenko (mikolalysenko) commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator Author

Burn-down agent: labeled Ready for review at 6eb0448.

  • CI: 442/442 non-skipped checks green (ci-ok success), 14 skipped
  • Bugbot: reviewed 6eb0448, no unresolved findings.
  • Mergeable: yes, no conflicts with base.

Generated by Claude Code

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@mikolalysenko Mikola Lysenko (mikolalysenko) removed the Ready for review Agent-verified: mergeable, CI green, Bugbot clean — awaiting human review label Oct 8, 2026
@mikolalysenko @claude
Merge origin/main into arch-refactor/704-json-error-object
9a15a0b
Main (#1043) moved get's agent-mode engine into agent_download.rs, so the
{code, message} error object is ported there: report_error takes a code,
report_lock_failure and the manifest read/write failures use
legacy_error, and fold_apply_failures sets the run-level error with
set_error_keep_status instead of a top-level errorCode. Rollback's
path_glob_invalid keeps the verbatim JSON message and uses main's
ui::sentence_case for the human line.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko

Mikola Lysenko (mikolalysenko) commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator Author

bugbot run


Generated by Claude Code

cursor[bot] reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

cursor[bot]
cursor Bot reviewed Oct 8, 2026
View reviewed changes

@cursor cursor Bot left a comment

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 9a15a0b. Configure here.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@mikolalysenko @claude
Merge origin/main into arch-refactor/704-json-error-object
9e718a9
Main's new contract rows (workspace-lock-elsewhere, eject refusals) and
the stray-member-lock test (#1095) now use the top-level error object:
the rows say error.code, and the test reads error.message.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko
Mikola Lysenko (mikolalysenko) added this pull request to the merge queue Oct 8, 2026
@mikolalysenko

Mikola Lysenko (mikolalysenko) commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator Author

[agent] Merged main, CI green, enqueued.


Generated by Claude Code

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Merged via the queue into main with commit d68931f Oct 8, 2026
464 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@mikolalysenko
Mikola Lysenko (mikolalysenko) deleted the arch-refactor/704-json-error-object branch October 8, 2026 21:56
Mikola Lysenko (mikolalysenko) pushed a commit that referenced this pull request Oct 8, 2026
@claude
Merge origin/main into arch-refactor/966-remove-legacy-spellings
717a7d9
Resolve conflicts with #1027 (--json usage errors print coded errors):
keep this branch's --sync-only cross-mode wording (the legacy mode
booleans are removed here) and add main's note that --json usage errors
now print the coded error on stdout, in scan/mod.rs and CLI_CONTRACT.md.

Co-Authored-By: Claude <[email protected]>
Mikola Lysenko (mikolalysenko) pushed a commit that referenced this pull request Oct 8, 2026
@claude
Merge main into agent/fix-member-stray-bun-vlt-lock
a963837
main (#1027) changed the --json top-level error to a {code, message}
object. CLI_CONTRACT.md now uses main's `error.code` rows with this
branch's Bun/vlt sentence, and the new CLI test reads
error.message.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0118z8gCQpYXnzeeinQdsTEp
Mikola Lysenko (mikolalysenko) pushed a commit that referenced this pull request Oct 8, 2026
@claude
Merge main into arch-refactor/648-resolve-org-once
ffe2715
Resolve get.rs and rollback.rs conflicts with #1027: keep this PR's
shared telemetry handle and take main's {code, message} error codes.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko Mikola Lysenko (mikolalysenko) mentioned this pull request Oct 8, 2026
Resolve the org once per run and route every API call through it (#648) #1041
Merged
Mikola Lysenko (mikolalysenko) pushed a commit that referenced this pull request Oct 8, 2026
@claude
Merge main into agent/fix-pnpm-open-issues
bc69b70
Resolve conflicts with #1027 ({code, message} JSON errors): keep this
PR's pnpm rows in CLI_CONTRACT.md with main's top-level `error.code`
wording and main's new rollback `error` row, and keep both import
sets in scan/mod.rs.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko Mikola Lysenko (mikolalysenko) mentioned this pull request Oct 8, 2026
Fix 15 open pnpm issues across hosted, vendored and agent modes #1007
Merged
Mikola Lysenko (mikolalysenko) pushed a commit that referenced this pull request Oct 8, 2026
@claude
[agent] refactor run 2026-10-08T23:20Z: #1188 (E14), record #1108/#1160/
869fd07
#1163/#1027

Assisted-by: Claude Code:claude-opus-5-5
Mikola Lysenko (mikolalysenko) pushed a commit that referenced this pull request Oct 8, 2026
@claude
Merge origin/main into agent/fix-npm-open-issues
7c32f75
Resolve the CLI_CONTRACT.md conflict with #1027 (top-level error became
{code, message}): keep this branch's eject_rolled_back skipped-event row
and spell the top-level error rows as `error.code`, as main now does.
Per-event errorCode fields are unchanged.

Co-Authored-By: Claude <[email protected]>
@mikolalysenko Mikola Lysenko (mikolalysenko) mentioned this pull request Oct 14, 2026
CI: rollback tests assert codes, not sentences (#1089) #1552
Merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@cursor cursor[bot] cursor[bot] left review comments
@Tanmay182003 Tanmay Singla (Tanmay182003) Tanmay182003 approved these changes
+1 more reviewer
@github-advanced-security github-advanced-security[bot] github-advanced-security[bot] left review comments
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

arch-refactor PR opened by the scheduled architecture refactor routine

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Decide: one shape for the --json top-level error (scan and get emit both a string and a {code, message} object)

Uh oh!

There was an error while loading. Please reload this page.

4 participants

@mikolalysenko @github-advanced-security @Tanmay182003 @claude
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.