Repository navigation
v1.4.13
nSelf CLI v1.4.13
Channel: stable
Changelog
[1.4.13] - 2026-10-10
- fix(compose): pull MinIO from the maintained pgsty fork (#476)
- feat(ssl): served-stack primitives for the TLS path (P7-LIVE-25) (#477)
- feat(doctor): served-certificate check in nself doctor (P7-LIVE-16) (#478)
- fix(plugin): stop sending PLUGIN_INTERNAL_SECRET to ping.nself.org (P7-PLUG-67) (#479)
- fix(doctor): send PLUGIN_INTERNAL_SECRET only to a local ai daemon, never via a proxy (P7-PLUG-73) (#480)
- fix(scripts): admin-merge restores the full protection snapshot and GET-verifies it (P7-HYG-40) (#482)
- feat(compat): NSELF_V15 gate helper and dual-mode test harness (P7-REG-11) (#483)
- feat(ssl): CLI-owned ACME over DNS-01 with certbot adoption (P7-LIVE-15) (#481)
- feat(registry): add internal/canon and internal/cmdregistry (P7-REG-03) (#489)
- feat(errs): exit class per error code, sentinel table, E400-E404, Describe (P7-REG-01) (#486)
- fix(deps): raise brace-expansion to 1.1.21 / 5.0.12 in the TS SDK lockfiles (GHSA-q2hr-2g5m-vwhr) (#491)
- fix(nginx): route served nginx/ssl dir call sites through nginxtopo (P7-LIVE-02) (#492)
- feat(reconcile): change-plan model, artifact diff, classification and env class (P7-LIVE-01) (#490)
- feat(docs): guide command checker for documented nself commands (P7-TRUTH-20) (#495)
- feat(canon): classify every command in canon.yaml (P7-REG-04) (#493)
- fix(scripts): branch-protection-toggle compares writable fields only and reports empty repos as n/a (P7-HYG-48) (#497)
- fix(doctor): port check ignores ports owned by the project's own stack (P7-PROD-30) (#500)
- fix(ci): endpoint-auth-checker fails closed, workflow gates only cli (P7-HYG-31) (#498)
- feat(output): v1 envelope writer, error envelope and human error renderer (P7-REG-02) (#499)
- fix(sdk): rename sdk/go/license to licensing so the /v2 module zip builds (P7-SURF-34) (#503)
- feat(sdk): Go SDK tag form sdk/go/v2.M.P with local resolve proof (P7-SURF-18) (#504)
- feat(sdk): sdk/go/compat ADR 0021 rule for plugin modules (P7-CI-49) (#505)
- feat(cli): global --json flag with invocation decorator (P7-REG-05) (#509)
- feat(build): URL-encoded password variables for compose interpolation (P7-PROD-31) (#510)
- feat(ci): app-pinned nself-ci protection tooling and checks-aware toggle (P7-CI-60) (#508)
- feat(ci): per-package coverage floors as data, checked by tools/covfloor (P7-GUARD-06) (#512)
- feat(perfbench): cold-start, time-to-healthy and A/B harness (P7-GUARD-07) (#511)
- fix(db): migrate up --migration-dir --dry-run applies nothing; down --migration-dir (P7-PROD-77) (#507)
- feat(license): verify the cache against ping's signature, decode plugins_allowed and jwt (P7-PLUG-63, part 1) (#506)
- feat(cli): exit classes, JSON error envelope and coded error block in main (P7-REG-06) (#513)
- fix(db): migrate up --dry-run read-only locally; remote dry-run refused unless proven (P7-PROD-84) (#514)
- feat(cli): help --json publishes the command registry (P7-REG-07) (#520)
- fix(ci): quarterly benchmark harness measures time to healthy (P7-TRUTH-22) (#523)
- feat(cli): project operation lock taken by the invocation decorator (P7-LIVE-13) (#524)
- feat(schemas): generated JSON Schemas + golden contract tests (P7-REG-08) (#526)
- feat(ci): cold-start A/B gate, p95 ceiling, real base build for size gate (P7-GUARD-08) (#525)
- feat(config): CS_N v2 keys (depends_on, networks, Dockerfile, target, command, ancestor context) (#516)
- feat(backup): schedule runs in the real project with the running binary; stream heartbeat (#522)
- refactor(build): Sink/Effects seam with in-memory plan mode (P7-LIVE-21) (#527)
- feat(output): v1 envelope pilot on status, doctor, config (P7-REG-09) (#531)
- feat(remote): one SSH exec funnel with path validation and pinned host keys (P7-NODE-04) (#528)
- feat(plugin): manifest v2 types, schema and v1 normalizer (P7-PLUG-01) (#530)
- feat(portable): bundle library, contract cli.portable-export v1 (P7-ADOPT-23) (#529)
- feat(ssl): HTTP-01 ACME challenge on every port-80 server block (P7-LIVE-24) (#532)
- feat(backup): destination interface with path:// and host:// (P7-PROD-06) (#533)
- feat(remote): ParseHostSpec, one deploy host grammar (P7-DEPL-23) (#534)
- feat(sdk): boot-time plugin migrations, contract plugin.boot-migrations v1 (P7-PLUG-14) (#535)
- feat(catalog): one generator for registry, catalog and counts (P7-PLUG-07) (#536)
- feat(plugin): refuse install when required postgres extensions are missing (P7-ADOPT-06) (#538)
- feat(plugin): migration readiness wait and doctor checks, E118-E120 (P7-PLUG-59) (#540)
- feat(backup): off-box status from heartbeats and remote drill (P7-PROD-07) (#537)
- feat(sdk): sdk/go/output envelope, error, exit-class and stream helpers (P7-SURF-28) (#541)
- feat(canon): canon data in per-domain fragments with mode views (P7-CANON-02) (#542)
- feat(config): nself.yaml JSON Schema and config validate, E435/E436 (P7-SURF-07) (#548)
- feat(plugin): manifestv2migrate -targets prints every installer binary (P7-PLUG-55) (#549)
- feat(sdk): simharness Docker sshd fleets, cli controlplane/sim delegates (P7-NODE-21) (#553)
- feat(canon): canon engine, generated move table, v1.5 tree relocation, hub validators (P7-CANON-21) (#551)
- feat(db): plugin seed hook, db seed --plugin and --all-plugins (P7-PLUG-32) (#554)
- feat(backup): zero-config encryption identity, key-loss docs, advisory doctor hint (P7-PROD-08) (#547)
- feat(drill): two-command drill (P7-CANON-16) (#556)
- fix(deploy): deploy only the named env, inventory envs are targets (P7-DEPL-12) (#545)
- feat(canon): generators build the v1.5 surface, canon page, moved-command stubs, registry-based golden path (P7-CANON-22) (#557)
- feat(sdk): signing package, Ed25519 verification with purposes and DSSE (P7-CACHE-06) (#555)
- feat(build): build --plan, --yes and --plan-id (P7-LIVE-03) (#552)
- perf(db): migrate --migration-dir one ledger read per run (P7-LIVE-11) (#558)
- feat(compose): one generated image lock for every image reference (P7-LIVE-17) (#496)
- fix(sdk/ts): override proxy-addr to 2.0.8 (dependabot #40) (#561)
- feat: daily availability probe for every image in the lock (#560)
- fix(images): re-resolve python:3.12-slim lock after upstream digest was removed (#575)
- feat(canon): config domain moves - env, secrets, oauth, telemetry, trust under config (P7-CANON-03) (#563)
- feat(canon): move account commands under license (P7-CANON-04) (#577)
- feat(canon): migrate data commands to canonical homes (P7-CANON-06) (#576)
- feat(canon): move lifecycle deploy and services commands (P7-CANON-07) (#579)
- feat(cli): mount installed plugin commands (P7-CANON-01) (#578)
- feat(canon): move extension verbs to add and remove (P7-CANON-08) (#581)
- feat(cli): canonicalize observe commands and add next step (P7-CANON-05) (#580)
- feat(mirror): lock-driven image mirror tool (P7-PROD-73) (#571)
- feat(admin): mount builtin command family (P7-CANON-19) (#582)
- fix(deps): Go 1.26.9 and x/net v0.60.0 for GO-2026-6599..6617 (#587)
- fix(deps): pin handlebars >=4.7.10 in the TS SDK lockfiles (#588)
- feat(init): keep .nself/ci.yaml committable in new projects (P7-CI-58) (#589)
- feat(db): stream Hasura metadata across remote envs (P7-LIVE-12) (#584)
- feat(plugin): adopt licensed vocabulary and search alias (P7-PLUG-11) (#586)
- feat: expose registry surface declarations (P7-SURF-30) (#590)
- feat(deploy): add tiered targets and strict host keys (P7-DEPL-13) (#585)
- feat(proxy): model generated routes and publish contract (P7-DEPL-01) (#591)
- feat(images): diagnose pulls and use digest mirror (P7-LIVE-18) (#592)
- feat: reconcile plugin and bundle changes (P7-LIVE-06) (#594)
- feat(output): isolate envelope stdout and add conversion gates (P7-SURF-09) (#593)
- feat(doctor): reconcile generated drift and allow safe fixes (P7-LIVE-07) (#596)
- feat(deploy): target inventory access and ops profile (P7-DEPL-14) (#595)
- feat(config): enforce CLI minimum version diagnostics (P7-TRUTH-12) (#598)
- feat(hasura): expose schema and permissions snapshots (P7-SURF-32) (#599)
- feat(build): publish compose env file manifest (P7-DEPL-26) (#600)
- feat(deploy): refuse images missing host architecture (P7-DEPL-18) (#601)
- feat(bundle): install-state ledger bundles.json v1 (P7-PLUG-18) (#603)
- fix(ci): make the offload gate green on a clean main (D-0286) (#611)
- feat(config): bind flags to env keys once and add config explain (P7-SURF-06) (#613)
- feat(images): weekly reviewed image pin bump PR (P7-HYG-34) (#615)
- feat(nginx): read plugin snippets and hand-managed conf.d into the route model (P7-DEPL-22) (#604)
- feat(build): v1 envelope for reset, clean, uninstall and confirm rows for the build fragment (P7-SURF-26) (#614)
- feat(data): v1 envelopes for db, backup, init template and update project (P7-SURF-14) (#612)
- feat(invoke): machine request to argv to self-exec core and machineRegistry (P7-SURF-24) (#605)
- feat(bundle): bundle install reaches app-ready, ledger moves to the plugin dir, doctor reports ledger drift (P7-PLUG-19) (#618)
- feat(deploy): rolling restart through the compose manifest with a per-kind health gate (P7-DEPL-16) (#606)
Commits since previous release
- feat(db): generate vector-search k-NN function and track it through Hasura (P7-ADOPT-07) (#623) (dd24913)
- chore(release): bump version to 1.4.13 (#626) (2e89da8)
- fix(compose): keep default images pinned after a weekly pin bump (#628) (a7f9d65)
- feat(bundle): refcounted bundle remove, --delete-data confirmation, remove refuses a bundle member (P7-PLUG-20) (#625) (a668dcb)
- feat(invoke): confirmation gate, machine audit log, machine token and mcp --host (P7-SURF-25) (#622) (c0b7779)
- fix(compose): emit optional-service secrets as ${VAR} references, never literals (D-0266) (#627) (27d98a5)
- feat(observe): v1 envelopes for status urls, status health, doctor heal, doctor images, help topics, version (P7-SURF-11) (#610) (5dc4317)
- fix(build): honest envelopes for clean, reset and uninstall failures (P7-SURF-26 follow-up) (#624) (357ad44)
- fix(nginx): route model honours nginx phase order, HTTP/1.1 websockets, safe ssl dirs and closed access scopes (P7-DEPL-22 follow-up) (#620) (2f3c740)
- fix(config): explain names the ENV cascade selector and parses its options properly (P7-SURF-06 follow-up) (#621) (6271316)
- feat(cli): opt-in once-per-24h update hint on stderr (P7-ADOPT-08) (#609) (7fda103)
- feat(deploy): rolling restart through the compose manifest with a per-kind health gate (P7-DEPL-16) (#606) (5424e5a)
- feat(bundle): bundle install reaches app-ready, ledger moves to the plugin dir, doctor reports ledger drift (P7-PLUG-19) (#618) (e31b987)
- feat(invoke): machine request to argv to self-exec core and machineRegistry (P7-SURF-24) (#605) (4a0a306)
- feat(data): v1 envelopes for db, backup, init template and update project (P7-SURF-14) (#612) (c06d04b)
- feat(build): v1 envelope for reset, clean, uninstall and confirm rows for the build fragment (P7-SURF-26) (#614) (9aa984b)
- feat(nginx): read plugin snippets and hand-managed conf.d into the route model (P7-DEPL-22) (#604) (77c35e1)
- feat(images): weekly reviewed image pin bump PR (P7-HYG-34) (#615) (1edb7ef)
- feat(config): bind flags to env keys once and add config explain (P7-SURF-06) (#613) (eb4dc6e)
- fix(ci): make the offload gate green on a clean main (D-0286) (#611) (89089f5)
- feat(bundle): install-state ledger bundles.json v1 (P7-PLUG-18) (#603) (0380f27)
- feat(deploy): refuse images missing host architecture (P7-DEPL-18) (#601) (165953e)
- feat(build): publish compose env file manifest (P7-DEPL-26) (#600) (b1242e6)
- feat(hasura): expose schema and permissions snapshots (P7-SURF-32) (#599) (9241d44)
- feat(config): enforce CLI minimum version diagnostics (P7-TRUTH-12) (#598) (f9e56ad)
- docs: generate command wiki facts from registry (P7-TRUTH-01) (#597) (5cb8be2)
- feat(deploy): target inventory access and ops profile (P7-DEPL-14) (#595) (6575544)
- feat(doctor): reconcile generated drift and allow safe fixes (P7-LIVE-07) (#596) (00f048c)
- feat(output): isolate envelope stdout and add conversion gates (P7-SURF-09) (#593) (5f4533a)
- feat: reconcile plugin and bundle changes (P7-LIVE-06) (#594) (0c3ace5)
- feat(images): diagnose pulls and use digest mirror (P7-LIVE-18) (#592) (f07ecf7)
- feat(proxy): model generated routes and publish contract (P7-DEPL-01) (#591) (aecf3c2)
- feat(deploy): add tiered targets and strict host keys (P7-DEPL-13) (#585) (0c91123)
- feat: expose registry surface declarations (P7-SURF-30) (#590) (9bb2052)
- feat(plugin): adopt licensed vocabulary and search alias (P7-PLUG-11) (#586) (6bcce7e)
- feat(db): stream Hasura metadata across remote envs (P7-LIVE-12) (#584) (391dcee)
- feat(init): keep .nself/ci.yaml committable in new projects (P7-CI-58) (#589) (3223ae1)
- fix(deps): pin handlebars >=4.7.10 in the TS SDK lockfiles (#588) (e39a616)
- Generated-state record and hand-edit policy (P7-LIVE-04) (#569) (5bdff7f)
- fix(deps): Go 1.26.9 and x/net v0.60.0 for GO-2026-6599..6617 (#587) (35224ac)
- chore(infra): remove cli terraform/ and dead internal/infra, point docs at the infra plugin (P7-DEPL-10) (#583) (a4a6090)
- feat(admin): mount builtin command family (P7-CANON-19) (#582) (8705ffb)
- feat(mirror): lock-driven image mirror tool (P7-PROD-73) (#571) (99e8405)
- feat(cli): canonicalize observe commands and add next step (P7-CANON-05) (#580) (4c3dfc8)
- feat(canon): move extension verbs to add and remove (P7-CANON-08) (#581) (861bb1e)
- feat(cli): mount installed plugin commands (P7-CANON-01) (#578) (5ef35e7)
- feat(canon): move lifecycle deploy and services commands (P7-CANON-07) (#579) (2316bb1)
- feat(canon): migrate data commands to canonical homes (P7-CANON-06) (#576) (b3c8eb2)
- feat(canon): move account commands under license (P7-CANON-04) (#577) (3529548)
- feat(canon): config domain moves - env, secrets, oauth, telemetry, trust under config (P7-CANON-03) (#563) (cfd0b14)
- fix(images): re-resolve python:3.12-slim lock after upstream digest was removed (#575) (459f083)
- chore(deps)(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc (#574) (7e1f932)
- chore(deps)(deps): bump github.com/santhosh-tekuri/jsonschema/v6 (#573) (54c4f93)
- chore(deps): otel 1.47.0, x/text 0.42.0, jsonschema-go 0.4.3, vendored (#570) (74466d3)
- feat: daily availability probe for every image in the lock (#560) (3897ea1)
- fix(sdk/ts): override proxy-addr to 2.0.8 (dependabot #40) (#561) (9a68729)
- docs(wiki): generate error codes, exit codes and taxonomy reference pages (P7-TRUTH-35) (#559) (4870793)
- feat(compose): one generated image lock for every image reference (P7-LIVE-17) (#496) (b83cd79)
- perf(db): migrate --migration-dir one ledger read per run (P7-LIVE-11) (#558) (79b2317)
- feat(build): build --plan, --yes and --plan-id (P7-LIVE-03) (#552) (347dbf5)
- feat(sdk): signing package, Ed25519 verification with purposes and DSSE (P7-CACHE-06) (#555) (a962a37)
- feat(canon): generators build the v1.5 surface, canon page, moved-command stubs, registry-based golden path (P7-CANON-22) (#557) (cfc6a7c)
- fix(deploy): deploy only the named env, inventory envs are targets (P7-DEPL-12) (#545) (48582f0)
- feat(drill): two-command drill (P7-CANON-16) (#556) (b73d587)
- feat(backup): zero-config encryption identity, key-loss docs, advisory doctor hint (P7-PROD-08) (#547) (d0393fb)
- feat(db): plugin seed hook, db seed --plugin and --all-plugins (P7-PLUG-32) (#554) (efd3abb)
- feat(canon): canon engine, generated move table, v1.5 tree relocation, hub validators (P7-CANON-21) (#551) (eac0621)
- feat(sdk): simharness Docker sshd fleets, cli controlplane/sim delegates (P7-NODE-21) (#553) (b066a68)
- feat(plugin): manifestv2migrate -targets prints every installer binary (P7-PLUG-55) (#549) (dc3a000)
- feat(config): nself.yaml JSON Schema and config validate, E435/E436 (P7-SURF-07) (#548) (eed7f34)
- test(repoqa): http.Client and docker exec funnel ratchets (P7-GUARD-02) (#544) (766abfb)
- test(perfbench): keep the timing verdict out of the order test (D-0250) (#546) (0437beb)
- feat(canon): canon data in per-domain fragments with mode views (P7-CANON-02) (#542) (d6db370)
- feat(sdk): sdk/go/output envelope, error, exit-class and stream helpers (P7-SURF-28) (#541) (715dd80)
- test(repoqa): layer map, import-direction guard and orphan ratchet (P7-GUARD-01) (#543) (8c3dd9a)
- feat(backup): off-box status from heartbeats and remote drill (P7-PROD-07) (#537) (991c396)
- ci(contracts): make contract-check and Linux contract smoke (P7-REG-10) (#539) (9e961c5)
- feat(plugin): migration readiness wait and doctor checks, E118-E120 (P7-PLUG-59) (#540) (c6f5c96)
- feat(plugin): refuse install when required postgres extensions are missing (P7-ADOPT-06) (#538) (776d732)
- feat(catalog): one generator for registry, catalog and counts (P7-PLUG-07) (#536) (29d171d)
- feat(sdk): boot-time plugin migrations, contract plugin.boot-migrations v1 (P7-PLUG-14) (#535) (c22935b)
- feat(remote): ParseHostSpec, one deploy host grammar (P7-DEPL-23) (#534) (c0d3c3b)
- feat(backup): destination interface with path:// and host:// (P7-PROD-06) (#533) (3a6d094)
- feat(ssl): HTTP-01 ACME challenge on every port-80 server block (P7-LIVE-24) (#532) (840e1d2)
- feat(portable): bundle library, contract cli.portable-export v1 (P7-ADOPT-23) (#529) (994d4c1)
- feat(plugin): manifest v2 types, schema and v1 normalizer (P7-PLUG-01) (#530) (2a8337c)
- feat(remote): one SSH exec funnel with path validation and pinned host keys (P7-NODE-04) (#528) (2444b98)
- feat(output): v1 envelope pilot on status, doctor, config (P7-REG-09) (#531) (f991447)
- chore(deps)(deps-dev): bump typescript-eslint parser and plugin to 8.71.0 in /sdk/ts (#519) (a962938)
- chore(deps)(deps-dev): bump @typescript-eslint/eslint-plugin from 8.70.0 to 8.70.1 in /sdk/ts (#518) (f116ed2)
- chore(deps)(deps-dev): bump ts-jest from 29.4.13 to 29.4.14 in /sdk/ts (#517) (c9843d3)
- refactor(build): Sink/Effects seam with in-memory plan mode (P7-LIVE-21) (#527) (1cfab33)
- chore(deps)(deps-dev): bump ts-jest in /sdk/ts-sdk (#521) (ae24158)
- feat(backup): schedule runs in the real project with the running binary; stream heartbeat (#522) (cb14bc0)
- feat(config): CS_N v2 keys (depends_on, networks, Dockerfile, target, command, ancestor context) (#516) (55225a2)
- feat(ci): cold-start A/B gate, p95 ceiling, real base build for size gate (P7-GUARD-08) (#525) (e975b72)
- feat(schemas): generated JSON Schemas + golden contract tests (P7-REG-08) (#526) (bba0140)
- feat(cli): project operation lock taken by the invocation decorator (P7-LIVE-13) (#524) (e812e39)
- fix(ci): quarterly benchmark harness measures time to healthy (P7-TRUTH-22) (#523) (a7e7052)
- feat(cli): help --json publishes the command registry (P7-REG-07) (#520) (300b85d)
- fix(db): migrate up --dry-run read-only locally; remote dry-run refused unless proven (P7-PROD-84) (#514) (a45e63d)
- feat(cli): exit classes, JSON error envelope and coded error block in main (P7-REG-06) (#513) (998825d)
- feat(license): verify the cache against ping's signature, decode plugins_allowed and jwt (P7-PLUG-63, part 1) (#506) (ed88645)
- ci(perfbench): add coverage floors and de-flake the sha test (#515) (6cf3bfc)
- fix(db): migrate up --migration-dir --dry-run applies nothing; down --migration-dir (P7-PROD-77) (#507) (34c9670)
- feat(perfbench): cold-start, time-to-healthy and A/B harness (P7-GUARD-07) (#511) (4f99cbe)
- feat(ci): per-package coverage floors as data, checked by tools/covfloor (P7-GUARD-06) (#512) (452f5bb)
- feat(ci): app-pinned nself-ci protection tooling and checks-aware toggle (P7-CI-60) (#508) (2bc1324)
- feat(build): URL-encoded password variables for compose interpolation (P7-PROD-31) (#510) (a5c6600)
- feat(cli): global --json flag with invocation decorator (P7-REG-05) (#509) (55ee978)
- feat(sdk): sdk/go/compat ADR 0021 rule for plugin modules (P7-CI-49) (#505) (806c0b8)
- feat(sdk): Go SDK tag form sdk/go/v2.M.P with local resolve proof (P7-SURF-18) (#504) (437da3b)
- test(start): stub docker on PATH in start-command tests (P7-HYG-18) (#501) (129972d)
- fix(sdk): rename sdk/go/license to licensing so the /v2 module zip builds (P7-SURF-34) (#503) (48737a7)
- chore(ci): branch protection baseline matches live protection (P7-HYG-14) (#502) (ed2a19c)
- feat(output): v1 envelope writer, error envelope and human error renderer (P7-REG-02) (#499) (c0d7e34)
- fix(ci): endpoint-auth-checker fails closed, workflow gates only cli (P7-HYG-31) (#498) (6796bf3)
- fix(doctor): port check ignores ports owned by the project's own stack (P7-PROD-30) (#500) (9b07851)
- fix(scripts): branch-protection-toggle compares writable fields only and reports empty repos as n/a (P7-HYG-48) (#497) (2bcce07)
- feat(canon): classify every command in canon.yaml (P7-REG-04) (#493) (562568c)
- feat(docs): guide command checker for documented nself commands (P7-TRUTH-20) (#495) (1b7708e)
- chore(release): retire MASTER-VERSIONS.md readers and writers (P7-TRUTH-34) (#494) (a12380a)
- feat(reconcile): change-plan model, artifact diff, classification and env class (P7-LIVE-01) (#490) (931a7cd)
- fix(nginx): route served nginx/ssl dir call sites through nginxtopo (P7-LIVE-02) (#492) (10750db)
- fix(deps): raise brace-expansion to 1.1.21 / 5.0.12 in the TS SDK lockfiles (GHSA-q2hr-2g5m-vwhr) (#491) (3fc02ed)
- feat(errs): exit class per error code, sentinel table, E400-E404, Describe (P7-REG-01) (#486) (c87b1f0)
- ci(docker): publish after a successful Release run, resolve version in a tested script (P7-HYG-06) (#488) (5f7b73c)
- ci(release): paginate DENY-005, gate publish on the denylist, bound artifact retention (P7-HYG-05) (#487) (ea95c41)
- feat(registry): add internal/canon and internal/cmdregistry (P7-REG-03) (#489) (8dbda07)
- feat(ssl): CLI-owned ACME over DNS-01 with certbot adoption (P7-LIVE-15) (#481) (1205592)
- chore(repo): untrack compiled binaries, add tracked-binary guard and SSRF note (P7-GUARD-09) (#485) (425ac55)
- docs(wiki): use the RFC 5737 example host in cmd-deploy (P7-HYG-02) (#484) (793a4d6)
- feat(compat): NSELF_V15 gate helper and dual-mode test harness (P7-REG-11) (#483) (b98bc1f)
- fix(scripts): admin-merge restores the full protection snapshot and GET-verifies it (P7-HYG-40) (#482) (b4a1e7b)
- fix(doctor): send PLUGIN_INTERNAL_SECRET only to a local ai daemon, never via a proxy (P7-PLUG-73) (#480) (22ee746)
- fix(plugin): stop sending PLUGIN_INTERNAL_SECRET to ping.nself.org (P7-PLUG-67) (#479) (0794319)
- feat(doctor): served-certificate check in nself doctor (P7-LIVE-16) (#478) (d2cd402)
- feat(ssl): served-stack primitives for the TLS path (P7-LIVE-25) (#477) (240e48e)
- fix(compose): pull MinIO from the maintained pgsty fork (#476) (f6c45e2)
- chore(deps)(deps-dev): bump eslint from 10.10.0 to 10.11.0 in /sdk/ts (#475) (6db45e1)
- chore(deps)(deps-dev): bump @typescript-eslint/parser in /sdk/ts (#474) (53447c6)
- chore(deps)(deps-dev): bump ts-jest from 29.4.12 to 29.4.13 in /sdk/ts (#473) (ca8edfa)
- chore(deps)(deps-dev): bump ts-jest in /sdk/ts-sdk (#472) (c3ba19e)
Install
brew install nself-org/nself/nself
# or download a tarball below for your platformVerify (Sigstore keyless)
cosign verify-blob \
--bundle <tarball>.tar.gz.sig \
--certificate-identity-regexp '^https://github.com/nself-org/cli/\.github/workflows/release\.yml@refs/tags/v1.4.13$' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
<tarball>.tar.gzFull signing + verification details: release-signing.md
Artifacts
- Platform tarballs (linux/darwin × amd64/arm64) + Windows zips (amd64/arm64)
checksums.txt— SHA-256 of all tarballssbom.spdx.json+ per-tarball SBOMs — SPDX software bill of materialsprovenance.intoto.jsonl— SLSA v1.0 provenance attestation*.sig— Sigstore cosign signature bundles for every artifact above