Repository navigation
nSelf CLI v1.4.15
Channel: stable
Commits since previous release
- chore(release): bump to v1.4.15 (#877) (12aa17f)
- ci: retention-days 14 on proxy e2e evidence uploads (#876) (d8c8ecf)
- fix(cli): let the ci plugin mount beside the eval-gate break-out (P7-CI-47) (#875) (5f0ceba)
- chore(deps)(deps-dev): bump eslint from 10.11.0 to 10.12.0 in /sdk/ts (#873) (cddf86d)
- chore(deps)(deps-dev): bump ts-jest from 29.4.14 to 29.4.15 in /sdk/ts (#871) (3882bd0)
- chore(deps)(deps-dev): bump ts-jest in /sdk/ts-sdk (#874) (6befca8)
- chore(deps)(deps-dev): bump @typescript-eslint/parser in /sdk/ts (#872) (b8a9d5c)
- chore(deps)(deps-dev): bump @types/node from 25.9.6 to 25.9.9 in /sdk/ts (#870) (d694ae3)
- chore(deps)(deps): bump github.com/go-chi/chi/v5 from 5.4.0 to 5.5.0 (#869) (be228e1)
- test(ci): machine-surface smoke for Epic P7-SURF acceptance 1-9 (P7-SURF-99) (#865) (879b065)
- test(backup): anchor TestPruneKeepsKeepPrefixTag at noon so it is not wall-clock dependent (#866) (529e891)
- feat(parity): four-surface parity gate, registry-driven tools/parity, no experimental markers (P7-SURF-23) (#864) (4187532)
- feat(account): v1 envelope for the account fragment (P7-SURF-16) (#860) (0e76d99)
- feat(doctor): nself doctor --deep folds in installed plugins' doctor --json (P7-CI-53) (#863) (47d8c11)
- feat(doctor): isolation guard ISO-01..04 for the ADR 0004 wall (P7-ADOPT-05) (#859) (055aff5)
- fix(add): start swapped proxy services with the project compose manifest (D-0432) (#862) (04cebe7)
- ci(docker): point :latest at the versioned index with imagetools instead of rebuilding (D-0351) (#861) (aa72766)
- fix(cli): cli licence follow-ups from the P7-PLUG-63 review: (D-0227) (#827) (0aecf45)
- fix(build): isolate plugin compose normalizations in the project overlay (D-0318) (#849) (b014725)
- fix(cli): No freshness check on plugin releases: an old, (D-0843) (#831) (f894559)
- fix(cli): Signed-since floor can be dodged with a forged older (D-0841) (#824) (69c77c1)
- fix(ssh): isolate host-key trust for strict access/admin and runner connections (D-0855, D-0856) (#830) (68d67a5)
- fix(test): fix two red go:test cases on main (D-0850) (#822) (867fd5d)
- fix(plugin): scope the plugin registry cache per registry (D-0849) (#821) (edc7a0e)
- feat(license): unattended entitlement refresh timer (P7-PLUG-64) (#858) (a0f25bd)
- feat(ci): v1.5 drops CI-VAULT-SYNC-01 and routes ci eval to the eval-gate plugin (P7-CI-45) (#856) (32130e0)
- docs(wiki): cli plugin pages become pointers to the plugins wiki homes (P7-TRUTH-23) (#857) (67366fd)
- feat(facts): public facts artifact and tools/facts (P7-TRUTH-02) (#855) (7d2fca7)
- fix(plugin): resync the vendored counts.json with plugins main (#854) (346f8c4)
- feat(canon): final ratchet - budget 20 with equality, ceiling, shim lifetime, v1.5 root help fits, old-spellings report (P7-CANON-17) (#853) (b427c08)
- fix(sharedproxy): review fixes, shared proxy build lock, runtime wiki and two-project e2e (P7-ADOPT-21) (8302caa)
- fix(cli): rotate JWT JSON keys and isolate the Compose environment (D-0353) (#850) (eae360b)
- fix(plugin): refresh the bundle ledger on every plugin update path (D-0825) (#852) (51a1437)
- fix(build): refuse to replace another owner's nginx site file (D-0491) (#843) (78e653e)
- feat(templates): multi-app isolation reference template (P7-ADOPT-04) (#834) (b3a9b9d)
- fix(install): load the bundle catalog before resolving names (D-0268) (#851) (f90db65)
- fix(plugin): scope install rollback to invocation-owned directories (D-0874) (#847) (12937da)
- fix(deploy): refuse process-only config on remote deploy (D-0260) (#841) (4eda109)
- fix(db): report ledger_needs_upgrade in migrate status envelope and MCP (D-0528) (#840) (22c7a6f)
- fix(ssl): reject unresolved Traefik mount symlink escapes (#846) (e1ec88c)
- fix(cli): Backup PGPASSWORD can be overridden by an inherited (D-0862) (#823) (fc5536d)
- fix(mcp): share ASCII-only host case folding (D-0881) (#838) (c53bc2d)
- fix(postgres): preserve function settings and fail closed on switch state errors (#845) (dd612b3)
- fix(build,routemodel): restore the D-0371 route snapshot fixes reverted by #783 (#842) (9334848)
- fix(build): pre-create the traefik renderer output dirs as the build user (D-0782) (#836) (a289b19)
- test(build): pin flow-style plugin network normalisation (D-0859) (#839) (955426e)
- fix(backup): restore migrated databases through a scratch database swap (D-0663) (#829) (ce57b05)
- fix(repoqa): pin layering exceptions and guard all source imports (D-0256) (#837) (542dc37)
- fix(canon): strip .exe before ProxyBinary and guard the ports fixture output dir (P7-CANON-13 review) (#828) (76ef532)
- ci: move macOS 14 runners to macos-15 (#833) (dd44036)
- chore(deps)(deps): bump github.com/go-chi/chi/v5 from 5.3.2 to 5.4.0 (#832) (729e25f)
- test(ci): add a v1.5 test leg and run the Hasura remote partial-failure test in both modes (D-0275) (#820) (6e212ec)
- fix(plugin): thread force acknowledgement and load remove config (D-0504) (#819) (6c11930)
- fix(build): per-project api-docs conf name on fronted stacks, removed when docs are off (D-0599) (#818) (fca0c8e)
- fix(deploy): remote apply accepts image+build services and checks the Dockerfile exists (D-0420) (#817) (62f9eb7)
- fix(plugin): refuse to publish or unlink another plugin's binary (D-0603) (#816) (6ac28db)
- fix(plugin,doctor): confirm a cached entitlement denial live; strict ledger shape and ENOTDIR drift (D-0474) (#815) (e0767bb)
- fix(add): swap proxy containers in one extension apply (D-0432) (#813) (cc935f2)
- fix(service): reach the storage plugin, not MinIO, by the name storage (D-0451) (#814) (542c2d6)
- fix(plugin): repair deferred Hasura table tracking (D-0437) (#812) (f6de756)
- fix(backup): isolate streams from MinIO credential guards (#811) (d9fdaff)
- fix(reconcile): redact multiline and marker-containing secrets (#810) (f4a065f)
- fix(build): export active object store to plugin env (D-0450) (#809) (3d070ba)
- fix(ssl): retire certbot writers before ACME add (#808) (e1133f3)
- fix(ssh): quote shared deploy pin-file options (D-0462) (#807) (59cd585)
- fix(redaction): mask basic auth and preserve loopback mappings (D-0559) (#806) (3993b4e)
- fix(build): stage confirmed artifacts before publication (D-0261) (#804) (4d21f3d)
- fix(backup): replace host mc with signed S3 backups (D-0128) (#802) (bf761a7)
- fix(backup): require restorable production snapshots (D-0427) (#803) (4e2ef24)
- fix(lock): resolve project pin collisions and default selection (D-0398) (#805) (01be63b)
- fix(commands): gate automatic rebuilds and plugin disable (D-0752) (#799) (3aed1bf)
- fix(reconcile): bind plans to the process ENV cascade (D-0753) (#800) (95a9960)
- feat(start): attach and detach the shared proxy nginx at start and stop (P7-ADOPT-21) (#801) (e674419)
- fix(mcp): guard token-less v1.4 transports against DNS rebinding (D-0739) (#798) (c801381)
- feat(canon): v1.5 break-out relocation with verified auto-add (P7-CANON-13) (#794) (6fe7bc6)
- feat(cli): v1 envelopes for services, extend and admin commands (P7-SURF-13) (#796) (378a04f)
- ci(coverage): raise the job timeout to 20 minutes (#797) (220c184)
- feat(cli): v1 envelopes for init, start, stop and restart (P7-SURF-10) (#795) (e282a68)
- chore(deps)(deps): bump golang.org/x/term from 0.46.0 to 0.47.0 (#789) (376dbe4)
- feat(build): Docker-socket guard for compose inputs (P7-DEPL-21) (#780) (51914c0)
- fix(import): carry computed fields and zero-upload storage checks through the importer (#793) (13eccd7)
- fix(ci): verify served release signatures before execution (D-0865) (#792) (3c5c2dc)
- fix(import): preflight Supabase storage objects in plan mode (#791) (9730a8f)
- fix(importer): keep Firebase collections out of protected tables (#790) (4284834)
- fix(compose,config): close the secret gaps next to D-0266 (#787) (92358cc)
- chore(deps)(deps): bump golang.org/x/text from 0.42.0 to 0.43.0 (#788) (1f729c9)
- fix(config): reserve k8s error codes E720-E739; read FUNCTIONS_RUNTIME from .env (D-0328, D-0390) (#782) (193b62f)
- test(surf): adversarial suite for the machine surfaces, nightly fuzzing (P7-SURF-21) (#779) (f16cb42)
- fix(agentsetup): merge into the last duplicate mcpServers and reject trailing data (#785) (d73119d)
- fix(build): fail on plugin fragment write errors (#784) (453157f)
- 70,474 (#781) (780d56d)
- 81,303 (#783) (915e993)
- 121,831 (#777) (cf04de3)
- tokens used (#778) (c67eb40)
- tokens used (#776) (804ec3d)
- worker job q-20261014-112552-cli-debt-d-0200-d-0201-ssl-doctor-edges-co (#775) (becbe38)
- 46,491 (#773) (681cdc0)
- M tools/wikigen/agentguide.go (#772) (877457c)
- test(e2e): prod plan leg of proxy swap drives the reconcile gate without an unsigned install (P7-HYG-51) (#771) (c080a84)
- docs(cli): align custom services, SSL, and live safety guidance (#770) (8bd3eda)
- ci(perf): raise the compressed binary size cap to 13 MB (D-0858) (#769) (5354704)
- feat(deploy): strict host keys on every v1.4 secret-shipping path (P7-DEPL-29) (#768) (6b0c095)
- feat(license/sdk): runtime entitlement for licensed plugins (P7-PLUG-24) (#767) (f453108)
- build(tools): build generator tools once into bin/ instead of go run (#764) (8f7ae67)
- feat(plugin): verified auto-install seam and served-release probe (P7-CANON-23) (#766) (d8a0447)
- test: macOS/Linux conformance (P7-HYG-49) (#765) (d3444e2)
- feat(mcp): nself mcp setup writes client config and AGENTS.md; init scaffolds AGENTS.md (P7-SURF-05) (#763) (75c3392)
- feat(plugin): verify release signatures against pinned keys before extraction (P7-PLUG-23) (#762) (07310f6)
- fix(bundle): stabilize operation lock key before nested writes (#761) (ee4966a)
- fix(plugin): re-vendor counts.json from plugins main and read the generated_from block (#760) (0fd709f)
- feat(init): clone templates check their licensed plugins before writing files (P7-PLUG-25) (#759) (7acb6ef)
- feat(mcp): generate MCP tools from the machine registry (P7-SURF-03) (#758) (b38ee67)
- feat(plugin): export compat mode and cli version to plugin processes (P7-CI-59) (#757) (b63d903)
- feat(plugin): CLI consumes the plugin catalog (P7-PLUG-09) (#756) (125d605)
- fix(scripts): toggle sends {strict, checks} only; Release-Process admin-merge exit codes (#755) (b397514)
- fix(admin-merge): drop contexts from protection PUT, verify PR is MERGED (#743) (5406e13)
- feat(db): nself db image switch --to pgvector (P7-ADOPT-22) (#754) (a2f9b04)
- test(db): isolate ssh known_hosts in the hasura remote sshd fixture (#753) (85307e1)
- fix(trust): headless-safe trust setup and hermetic trust tests (#752) (bd9dca8)
- feat(proxy): shared host proxy build side, NGINX_MODE=shared (P7-ADOPT-03) (#750) (5ff3ef9)
- fix(bundle): install/remove operation lock + ledger follow-ups (D-0322 D-0475) (#751) (dcbcace)
- feat(ssl): provider-aware certificate reload under traefik (P7-DEPL-25) (#749) (7dc5bbb)
- feat(importer): appwrite source for db import (P7-ADOPT-16) (#742) (e74ef3e)
- feat(build): marker-guarded traefik output cleanup and round-trip e2e legs (P7-DEPL-04) (#748) (b4636fd)
- feat(importer): firebase source via Firestore REST, auth export and GCS (P7-ADOPT-14) (#740) (77ac1b0)
- feat(deploy): v1.5 apply ships the fronting stack nginx/sites (P7-DEPL-30) (#723) (a2f88a4)
- fix(release): bump regenerates version-hash goldens; image wait 60 min (#747) (2e952ab)
- feat(import): nhost and hasura-cloud sources (P7-ADOPT-11) (#739) (dd4a2b2)
- feat(build): proxy provider seam for the traefik plugin (P7-DEPL-03) (#651) (9b6023e)
- feat(deploy): v1 envelopes for the deploy fragment, stream writer on output.StreamRecord/StreamEnd (P7-SURF-15) (#746) (452a5e2)
- feat(import): supabase importer (P7-ADOPT-13) (#738) (2c85489)
- feat(sdk): tools/sdkgen and generated @nself/cli-api TypeScript client (P7-SURF-17) (#744) (be3ff9a)
- fix(data): --yes consent flag on pitr restore, migrate down, project rollback, backup prune (D-0285) (#745) (145f2dd)
- feat(import): nself db import nself round trip, object overwrite guard, uuidv7 skip (P7-ADOPT-18) (#741) (61b690c)
- chore(deps)(deps): bump github.com/prometheus/client_golang (#722) (6000358)
- fix(cli): re-login message for rejected token, db --env and status help text (D-0480, D-0525, D-0180) (#735) (7af44a1)
- fix(health,doctor,start): ProbeRedis argv password, YAML-list redis-cli guard, compose 2.20 minimum (D-0549 D-0228 D-0548) (#736) (744dadc)
- fix(plugin): undo a refused add, guard lifecycle removal, drop redundant build hint (D-0433, D-0324, D-0274) (#733) (559b877)
- feat(output,logs): json-stream v1 framing; logs envelope and NDJSON follow (P7-SURF-27) (#730) (d23ed2e)
- fix(mcp): validate env in the legacy config tools (D-0738) (#737) (7c431eb)
- fix(config): read dotenv files without leaking file text; warn on expanded '$' (D-0444, D-0558, D-0552) (#732) (a0298d9)
- test: make bundle, doctor-pilot, hostkeys and hasura-remote tests order- and repeat-independent (D-0499 D-0514 D-0507 D-0561) (#734) (89626c9)
- fix(compose): pass .nself/compose.env on dev, blue-green and doctor report (D-0550 D-0539) (#731) (8b76c2a)
- fix(ssl,start): certbot renew refuses under ACME; start cert path and health list (D-0461, D-0503, D-0502) (#729) (c66586b)
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.15$' \
--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