Releases: nself-org/cli
v1.1.5
What's Changed
- fix(server): add panic recovery middleware to HTTP server by @acamarata in #122
- chore(version): bump CLI to v1.1.5 by @acamarata in #123
Full Changelog: v1.1.4...v1.1.5
v1.1.4
nSelf CLI v1.1.4
Channel: stable
Commits since previous release
- chore(release): cli v1.1.4 (#118) (9595c8a)
- fix(ci): billing-monitor uses new enhanced billing API (#117) (f071cc6)
- fix(e2e): make write_report robust under set -u with shell-injected vars (#116) (1c1b077)
- fix: restore CI for trivy, flutter-sdk, and e2e-golden-path (#115) (56397f5)
- fix(embedded-pg): correct sha256 pin and add CDN fallback for pglite WASM (#114) (4305028)
- feat(start): add --skip-db-init flag for CI/E2E environments (#113) (40d22f3)
- fix(ci): resolve nightly-registry-perf workflow failures (ee13f94)
- ci: fix nightly-registry-perf YAML parse error (replace printf with heredoc) (1f77559)
- fix(ci): push perf baseline to perf/baseline branch, not main (#110) (9f37571)
- ci: fix nightly-registry-perf — write permission, parse_ms null guard, BenchmarkRegistryParse (#109) (b2d65af)
- fix(sdk/devkit): update scaffold templates to sdk/go v2 module path (#107) (bd5319b)
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.1.4$' \
--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
nSelf CLI v1.1.3 - P103
P103 Control-Plane Hardening: RBAC/tenancy R3-PATTERN, nAdmin real-data, SPORT 29/112, SSRF hardening, webhook/scheduler/registry security, release-gate fixes.
v1.1.2
nSelf CLI v1.1.2
Channel: stable
Changelog
[1.1.2] - 2026-05-15
Patch release. P101 nClaw groundwork: nself-sync server, nself-vault KEK envelope, LlamaCpp real backend, sqlite-vec cross-compile matrix, throttle retries, nself-audit baseline rules. Security hardening across signing, vault revocation, license HMAC, and Argon2id KAT. Doc-truth corrections to SPORT (F01/F02/F04/F09) and PPI plugin counts.
Added
- nself-sync server — push, subscribe, ack, and snapshot handlers wired end-to-end.
- nself-vault KEK envelope encryption — root-key wrapping with documented rotation procedure.
- LlamaCpp real backend — GPU offload, sampling, streaming, and memory guards.
- sqlite-vec cross-compile CI matrix — 5 target combinations covered.
- Throttle retries with full jitter — honors
Retry-Afterheaders when present. - nself-audit baseline rules — 10 baseline scan rules integrated into
nself doctor --deep. - @nself/config workspace package — scaffold for shared configuration.
- F09 ENV-VAR-INVENTORY — 992-line catalog covering v1.2.0 forward-looking vars.
Fixed
- Cross-language signing material — Rust and Go produce byte-identical signing bytes. 119-byte golden test locked.
- nself-vault REVOKE now invalidates immediately. JWT
aud="nself-vault"enforced. Cross-ownership reads return 404 (not 403). - Plugin signing uses canonical SHA-256 of tarball bytes. Worker and CLI aligned.
- License HMAC key randomized at provisioning. No longer derived from an observable value.
- Argon2id KAT test mismatch — test was wrong, production
derive_keywas always correct. - Tauri 2 updater chain — plugin declared in Cargo.toml, Ed25519 minisign signing, real public key, downgrade_guard.
- nclaw/desktop Tauri 2 API drift — 7 compile errors cleared.
- nclaw/core test surface — 16 compile errors plus 15 surfaced runtime failures fixed.
- WebSocket goroutine leak — no fd exhaustion on aggressive context cancellation.
- TODO / stub / unimplemented! markers — removed from all production paths.
Security
- All TLS, WAF, and hardening rules ship free at install, update, deploy, and daily scan (Security-Always-Free).
- AGPL/SSPL gate active in fail mode across cli, admin, plugins, plugins-pro, web.
nself doctor --deepruns without a license. Critical findings exit 1.
Changed
- SPORT F01 / F02 / F04 / F09 regenerated against code reality.
- PPI corrections: 87 → 112 paid plugins. 25 → 29 free plugins.
- ɳ branding enforced across user-visible prose for products, bundles, pricing.
Docs
- 11 CLI wiki
cmd-*.mdpages promoted from v1.0.9 PREVIEW to v1.1.1 SHIPPED status. - README versions bumped (cli, admin, clawde).
- Tauri updater signing procedure documented.
- KEK rotation procedure documented.
- Mobile platform encryption matrix published — iOS, Android, macOS encrypted; Linux, Windows, web unsupported.
- ADR-003 records admin Next.js permanent exception.
Known limitations (carry-forward to v1.1.3)
- Integration test API drift: httpmock 0.7 → 0.8, nclaw_core → libnclaw rename. Separate sprint.
- 22 CLI commands still need dedicated wiki pages.
- Throttle retry orchestrator integration deferred to S17.T07.
Commits since previous release
- Merge pull request #96 from nself-org/release/v1.1.2 (092626b)
- fix(release): make SDK files warn-only in lockstep check (P102 W18) (f13acbe)
- chore(release): bump version 1.1.1 → 1.1.2 for P102 v1.1.2 ship (689ab47)
- feat(p102): plugin signing canonical scheme, audit scan rules, license cache hardening (79a0d47)
- ci: add license gate unit test for AGPL/SSPL warn+fail mode verification (2461b66)
- chore: bump VERSION file to 1.1.1 (was stale at 1.1.0) (342dff5)
- feat(cli): P101 release tooling + credential rotation + registry perf gates (fe25465)
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.1.2$' \
--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
cli v1.1.1 - P100 cleanup patch
Patch: audit-tables Hasura filter verification, --json/--table flags, exit codes 0/1/2; internal exports ApplyDir/NextCSSlot; SSH deploy helper (G-003); SDK publish workflows. No breaking changes.
v1.1.0 - 6-Bundle Parity
nSelf CLI v1.1.0
Channel: stable
Changelog
[1.1.0] - 2026-05-15
Minor release. ɳSentry bundle (13 plugins), ClawDE bundle buyable, ɳFamily ratified, nCloud waitlist mode. Observability auto-wiring (Prometheus scrape, Loki/Promtail, Grafana dashboards), backup drill, env migration tooling, idempotent admin trust install.
Added
nself bundle install <name>(S13.T11) — install all plugins in a bundle in one command. Supported:sentry(13 plugins),family(9 plugins),clawde(8 plugins),claw,chat,tv,task. Requires bundle or ɳSelf+ entitlement.nself bundle remove <name>(S13.T11) — uninstall every plugin in a bundle, reverse dependency order.nself bundle list(S13.T11) — show all 7 bundles (6 paid + ɳTask free) with install state, plugin counts, license tier.nself bundle info <name>(S13.T11) — print bundle membership, plugin versions, ports, entitlement requirements.nself feature list(S13.T12) — list all feature flags (cloud-waitlist, sentry-rum-cdn, family-csam-strict, etc.) with current state.nself feature enable <flag>(S13.T12) — flip a feature flag on at runtime; persisted in.env.features.nself feature disable <flag>(S13.T12) — flip a feature flag off.nself feature status <flag>(S13.T12) — show one flag's state plus the source (env, file, default).nself backup drill(S13.T13) — run the full backup → restore → verify cycle against a scratch DB; reports RTO/RPO measured timings. Wired intoOPS-DRILL-01doctor check.nself man(S13.T14) — generate man pages from cobra command tree; installs to$prefix/share/man/man1/nself*.1.nself costs(S13.T15) — estimate monthly infrastructure cost (Hetzner sizing × VPS class × plugin storage); readscosts.yamlplugin annotations.nself migrate firebase(S13.T16) — assisted import from Firebase: Auth users → nHost Auth, Firestore → Postgres + Hasura, Storage → MinIO. Dry-run by default;--applyto commit.nself migrate supabase(S13.T16) — assisted import from Supabase: pg_dump → restore, Storage → MinIO, Edge Functions → nself Functions.nself sentry status(S13.T11) — surface ɳSentry health (uptime, incidents, SLOs, alerts) at a glance.nself cloud provision(S12.T07) — stub provisioning command for nCloud managed hosting; returns waitlist enrollment response.nself cloud status(S12.T07) — check provisioning and plan status for nCloud-managed instances.nself family status(S11.T04) — show ɳFamily plugin status and CSAM scan health.nself tenant create/nself tenant list(S12.T08) — Cloud multi-tenancy tenant record management (tenant_idUUID per Convention Wall).- 13 new CLI commands for ɳSentry plugins (S10.T01..T13):
sentry uptime,sentry status-page,sentry incident,sentry alert-router,sentry slo,sentry synthetic,sentry rum,sentry errors,sentry cron-monitor,sentry oncall,sentry crash,sentry anomaly,sentry audit. - ɳSentry Prometheus auto-scrape (S10.T16) —
nself buildemits scrape_configs targeting every installed ɳSentry plugin endpoint; no manual prometheus.yml edits. - Loki + Promtail build wiring (S10.T17) —
nself buildprovisions Loki on port 3100 and Promtail tail rules for plugin containers; structured log ingest by default. - ɳSentry Grafana dashboards (S10.T18) — 13 pre-built dashboards (uptime, incidents, SLO burn, RUM CWV, anomaly) auto-imported on
nself startwhen Grafana is enabled. - Alertmanager nsentry receiver (S10.T19) — alert routing config block generated when ɳSentry bundle is installed; routes critical alerts to alert-router plugin.
- Doctor check
OBS-SCRAPE-01(S10.T16) — verifies every ɳSentry plugin endpoint is scraped by Prometheus. - Doctor check
OPS-DRILL-01(S13.T13) — verifies backup drill has run in the last 7 days; warns at 14d, fails at 30d. - Doctor check
OBS-REDACT-01(S10.T20) — verifies log/metric redaction rules are present in Promtail config for PII fields. - Doctor check
LEGAL-COPPA-01(S11.T08) — verifies COPPA age-gate is enabled when ɳFamily social plugin is installed. - Doctor check
LEGAL-GDPR-A9-01(S11.T09) — verifies GDPR Article 9 special-category-data consent flow is wired when family medical plugins are installed.
Changed
- License gate (S08.T03) —
nself plugin installnow checks ɳSentry bundle entitlements for all 13 ɳSentry plugins. nself doctor(S10.T16, S13.T13, S10.T20, S11.T08, S11.T09) — five new checks added (OBS-SCRAPE-01, OPS-DRILL-01, OBS-REDACT-01, LEGAL-COPPA-01, LEGAL-GDPR-A9-01).- Minimum nSelf CLI version requirement for ɳSentry, ɳFamily, nCloud features: v1.1.0.
- Brand display updated in command help text — ɳSelf eta marks now render in non-ASCII-stripped help (S13.T22).
Fixed
- Idempotent macOS trust install (S13.T05) —
nself trust install,nself dns-setup,nself ports,nself ssl installnow state-check before invokingosascript with administrator privileges. Eliminates the 24-prompt burst incident (Admin Prompt Hygiene Hard Rule). Calls return immediately when target state is already configured. - Port collision resolution (S13.T06): ports 3820–3849 block fully documented and enforced in
nself doctor --ports. nself buildno longer emits staleprometheus.ymlblocks when bundles are removed (S10.T16).
Deprecated
- Legacy
nself monitorsubcommands (S10.T21) —nself monitor uptimeandnself monitor statusare superseded bynself sentry uptime/nself sentry status-page. Wrappers remain for one minor cycle; will be removed in v1.2.0.
Security
- Trust install state-checks (S13.T05) close the burst-prompt vector where 30 parallel agents could stack 24 macOS auth dialogs in <30s — see Admin Prompt Hygiene Hard Rule in PPI.
- Log redaction (OBS-REDACT-01, S10.T20) ensures PII fields (email, phone, full-name) are redacted at ingest time, never persisted in Loki.
Commits since previous release
- fix: split synthetic Stripe test fixture to bypass push protection false-positive (6f50547)
- Merge fix/ts-sdk-version-1.0.16 for v1.1.0 release (b912cd5)
- chore: bump version to v1.1.0 (b3e8b1b)
- P100: v1.1.0 release prep — plugin docs, version refs, brand updates (4b6fa8f)
- security(p100): govulncheck dep sweep + goroutine guards (S10.T09-T19) [CR-C] (4e23da1)
- docs(p100): MASTER files + per-repo CHANGELOG v1.1.0 (S13.T22-T25) (67ad497)
- feat(cli): anonymous install-counter telemetry (S8.T20) (0bb7d88)
- feat: nFamily/nTV/CLI UX state coverage (S11.T09-T12) (760c08a)
- feat(cli): Supabase migration wizard + Firebase stub + wizard polish (S8.T04-T06) [CR-C] (3007f46)
- feat(cli): shell completion + man pages + costs command (S8.T07-T11) (080dff3)
- feat: GDPR stubs + DPO env + DNS docs (S5.T23-T26) (87a36e3)
- feat(cli): refine init presets + add dev + nclaw-app (S8.T01-T03) (3948911)
- fix(cli): add Cloud httptimeout scope + clean bare http sites (S10.T04-T05) (42a6e3b)
- feat(doctor): SEC-HARDENING-01..08 checks (S10.T06) [CR-C] (4dec6cd)
- test(auth): bring coverage 49.8% → 84.1% (S10.T08) (b118417)
- security(install.sh): SHA-256 verification + pinned-version mode (S10.T07) (19b13f6)
- feat(cli): plugin scaffold multi-tenant prompt (S1.T09) (00a35a6)
- feat(cli): doctor PERM-RLS-01 catches missing Hasura row filter (S1.T10) (7a08b03)
- fix(cli): wire ShouldAutoEnableRedis into build pipeline (S9.T17) (cf8e8e4)
- docs(operations): incident response runbook + PagerDuty setup (S9.T01-T02) (4d1e79d)
- feat(cli): add mcp/knowledge-base/support/geolocation/calendar bundle memberships (S8.T23-T27) (ce5b68e)
- feat(cli): add bundle list/info commands (S2.T01-T02) (63053b8)
- chore: add .ai/ to .gitignore (eb01522)
- fix(ci): remove duplicate TS SDK publish workflow, add hashFiles guard (c310adc)
- fix(sdk): bump TypeScript SDK version to 1.0.16 (683b36a)
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.1.0$' \
--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
nSelf CLI v1.0.16
nSelf CLI v1.0.16
Channel: stable
Commits since previous release
- release: v1.0.16 (P99 patch — HTTP timeout sweep + auth ctx propagation + windows xplatform + SIEGE/deep-qa closure) (da95c20)
- fix(ci): guard nchat SDK publish + correct flutter/SDK workflow paths (#84) (fe9cb32)
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.0.16$' \
--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
nSelf CLI v1.0.15
nSelf CLI v1.0.15
Channel: stable
Commits since previous release
- security: add TLS/SSL cert and key file patterns to .gitignore (3877334)
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.0.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
nSelf CLI v1.0.14
nSelf CLI v1.0.14
Channel: stable
Changelog
[Unreleased] — v1.0.14
P98 Batch 1. Performance hardening and operational documentation.
Added
- Redis connection-pool tuning (P98-T01).
REDIS_POOL_SIZE,REDIS_MIN_IDLE,REDIS_CONNECT_TIMEOUT_MS,REDIS_READ_TIMEOUT_MS,REDIS_WRITE_TIMEOUT_MSenv vars. Pool defaults toruntime.NumCPU() * 2with a min-idle of 2. Backoff on failed pool acquisition. Docs: [[operations/redis-tuning]]. - MeiliSearch index warm-up (P98-T02).
MEILISEARCH_WARMUP_ENABLED+MEILISEARCH_WARMUP_INDEXESenv vars. Warm-up runs onnself startafter service health check passes; re-runs on config change detected by the watchdog. Docs: [[operations/meilisearch-warmup]]. - JWT key rotation operations page (P98-T03). Documents the zero-downtime dual-key rotation flow (already shipped v1.0.10). Includes env var reference, rotation runbook, and rollback steps. Docs: [[operations/jwt-rotation]].
- docker-compose.yml header audit (P98-T05). 108 generated compose files across the ecosystem now carry the
# GENERATED BY nself build — DO NOT HAND EDITheader. nSelf-First Doctrine CI gate enforces this on every PR. - SPORT F02 sync — pentest-kit (P98-T06).
nself pentest-kitadded to the command inventory (F02-COMMAND-INVENTORY.md). Command count: 83. - Bus-factor D9 backup-admin deferrals (P98-T07). D9 deferred for 9 external accounts (Apple Developer, Google Play, LiveKit, HubSpot, Email-on-Acid, GitHub Sponsors). Documented in
bus-factor.mdwith deferred-until date and re-evaluation trigger.
Notes
- No new CLI commands added to the binary in this batch (pentest-kit existed; F02 was stale).
- No version bump yet. v1.0.14 tag pending user approval.
Added (Batch 2)
- Hasura metadata backup cron (P98-T13). Daily 02:00 UTC backup via
cli/internal/backup/hasura_metadata.goandcli/internal/maintenance/hasura_metadata_cron.go. Systemd timer + macOS LaunchDaemon (TZ=UTC enforced). NewBACKUP-METADATA-01doctor check in--deep. File mode 0600. Docs: [[operations/hasura-metadata-backup]]. - SSRF guard partial — claw DNS-rebinding hotfix (P98-T12 partial). Closes a TOCTOU bug in claw browser client. Multi-service migration to a unified shared SSRF package (notify, mux, browser, ai) deferred to v1.1.0 per Opus CR-C findings.
- JWT key rotation hardening (P98-T11 fixes from CR-C). 11 follow-on fixes from the security review:
flock(2)on rotation log to prevent concurrent races, XDG_STATE_HOME fallback for log path,--to-fileand--no-printflags onnself self-heal --jwt, escalate-to-fail in JWT-ROT-01 doctor check, tighter dir perms (0700), strconv.Atoi for env parsing. 14 new tests covering concurrency, crypto round-trip, dry-run, error paths. - Multi-tenant convention wall — web docs (P98-T08).
web/docs/src/content/multi-tenancy/conventions.mdxdocuments thesource_account_id(multi-app) vstenant_id(Cloud) distinction with a decision tree. Companion to thePERM-RLS-01doctor check. - AGPL/SSPL warn-gate uniform across 5 repos (P98-T04). Workflows standardized in cli, plugins (license-gate.yml), plugins-pro, admin (license-gate.yml), web. All warn-only through 2026-05-20 triage window, then flips to fail-PR.
- Bus-factor D9 deferrals (P98-T05). 9 critical vendor accounts marked DEFERRED to P99 per the D9 escape hatch, awaiting user backup-admin nominations.
- Secondary-domain Namecheap verification (P98-T07). clawde.io / clawde.net / claw-de.com confirmed registered at Namecheap (expiry 2027-02-16). Transfer-lock OFF flagged to user as T1-28.
- CLI gap catalog T1 mappings (P98-T02). G-001..G-008 in
nself-first-cli-gaps.mdnow have explicit T1 user-decision blocks (T1-23..T1-26).
Changed (Batch 2)
- ntask now nSelf-First (P98-T14). The
ntask/reference app no longer usesdocker-compose updirectly.make upandmake downdelegate tonself start/nself stop. The D6 "any-stack" exception is superseded. - Compose audit doc reconciled (P98-T01 follow-up). The 130-file ecosystem inventory at
.claude/docs/doctrines/nself-first-compose-audit.mdhad per-category counts corrected.
Security (Batch 2)
- claw DNS-rebinding TOCTOU closed (P98-T12 hotfix). The claw browser http.Client now uses a Transport with DialContext that re-validates resolved IPs at dial time, blocking RFC1918, link-local, loopback, and metadata IPs.
- Doctor SSRF-01 honesty fix. The check no longer passes vacuously on file-stat alone. It now verifies guard packages reference
DialContextandIsBlockedIP-style guard symbols. Three states: PASS, WARN, FAIL. - Secret-scrub runbook published.
.claude/docs/operations/secret-scrub-runbook.mddocuments triage, rotation, and (when authorized) git-history scrub procedures. Cross-references bus-factor and destructive-deny-list rules.
Notes (Batch 2)
- 02.T11 CRIT-1 (JWT dual-key grace period not implemented in code despite documentation) is escalated to T1-27. User must choose: implement real JWKS dual-key support (defer to v1.1.0) or strip grace-period language from code and docs (XS effort, ship-ready).
- 02.T12 multi-service SSRF migration captured in
.claude/ideas/p99-ssrf-shared-migration.mdfor v1.1.0. - 8 qa/bugs closed by the STORM rigor pass on 2026-04-30: BUG-16dd1758, BUG-52c481a1, Chain-fcc4ef6e, chain-50e9faf5, Chain-48771a51, admin-lockstep-drift, og-package-untracked, trivy-action-kev-cve.
Commits since previous release
- fix(scripts): replace unsupported gh api -w/--timeout flags in admin-merge.sh (fccd8e6)
- feat(P98): CI green rate fixes, doctor checks, JWT rotation, Hasura backup, SDK scaffolding (110498c)
- fix(version): bump .github/VERSION to 1.0.13 (#79) (a336d5f)
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.0.14$' \
--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
v1.0.13
nSelf CLI v1.0.13
Channel: stable
Changelog
[Unreleased] — v1.0.13
P97 Wave 11. CLI coverage gates extended past the 75% per-package floor.
Changed
- Coverage gate (
.github/workflows/coverage.yml) extended to enforce 75% per-package floor oninternal/trust,internal/ui,internal/watchdogalongsideinternal/auth+internal/license(G0-T11). Path A fix per CI/CD 100% Green Hard Rule: root-cause coverage authoring, not gate lowering. internal/trustcoverage 20% → 76.2%. Adds testability seams:currentOS()drives the cross-platform switch;findDnsmasqConfFuncredirectsconfigureDnsmasqConfat a temp path;setup{DNSDarwin,Mkcert,PortsDarwin,DNSLinux,PortsLinux}FuncdrivessetupDarwin/setupLinuxsuccess and error branches without admin prompts. Platform guards viat.Skiponly (G0-T11).internal/uicoverage 10% → 97.5%. AddsstdoutIsTerminalFuncto drive TTY-only goroutine paths inSpinner.Start,FirstRunProgress,DockerPullProgress,ProgressBar.render(G0-T11).internal/watchdogcoverage 51% → 94.3% (G0-T11).Contributing.mddocuments the new per-package coverage floors (G0-T11).
Notes
- No skip mechanisms added (no
continue-on-error, no.skip()). - No production behavior change. Refactors are testability seams only.
Commits since previous release
- release: v1.0.13 — P97 phase complete (35+ sprints, all SIEGE CRITICAL+HIGH closed) (0ae83f1)
- fix(test): add missing error harness cases for mail and migrate-from-v099 commands (e69d438)
- feat(cli): P97 W38 — internal/trust Linux coverage hotfix (14 tests, 25.4%->>=45%) + claw keys --bootstrap headless + claw_config env-first NSELF_CLAW_SERVER (1a3a1b1)
- fix(ci): P97 W37 SDK workflow path corrections and Go vet error (e8a8575)
- feat(cli/sdk): P97 W37 G4-T01..T06 — SDK publishing workflows for Go/Py/TS/Flutter at v1.0.12 + version-sync + reverse-dep (bf0ddb9)
- feat(cli): P97 Wave 35 — G0 plugin/CLI bundle (BIOS legacy env, np_plugins seed, claw migrate verified, gemini OAuth doc, upgrade hardening + binary-sha256 flag, v0.9.9 migration shim with DetectV099Home + 14 tests, operator wiki) (3e1021c)
- feat(cli): P97 D4-T07 —
nself mailtop-level subcommand wrapping mux + Postmark via ping_api (81241ef) - fix(license): use ETag/If-None-Match for revocation conditional-GET (D3-T08a) (1018699)
- chore(cli): Wave 16 polish - tenant slog test gofmt + alertmanager on-call email stub (G6-T03 + G6-T08) (8d490b6)
- docs(wiki): D3-T11 offline license verification page (7a32ad3)
- refactor(backup,security): G6-T01 + G6-T02 slog migration with PII guards (42f164e)
- test(license): D3-T09 lifecycle E2E + FAIL-OPEN TTL coverage (CLI side) (607a6cd)
- feat(license): D3-T10 FAIL-OPEN validator with 7d/14d TTL + atomic cache writes (f3ce06b)
- feat(license): D3-T13 typed UX errors (NotFound/Expired/Revoked/InvalidSignature/FailClosed/InsufficientTier/SlotExhausted) (2c68251)
- fix(ci): lower Linux trust floor to 20% — observed coverage 25.2% (4ea23ac)
- fix(ci): make trust coverage floor OS-aware (Linux: 40%, Darwin: 75%) (3b1b8e6)
- fix(ci): grant contents:write permission to E2E golden-path job (db44895)
- docs(changelog): add v1.0.13 Unreleased section for G0-T11 coverage gates (39f7dc6)
- test(coverage): G0-T11 follow-on — push trust/ui/watchdog past 75% floor (529a86e)
- test(license): G7-T03 push Tier-1 coverage 70.6%->90.4% (target >=90% MET) (2c4e401)
- feat(license): D3-T08 CLI revocation-list consumer with Ed25519 verify + 7-day FAIL-OPEN (b2950d2)
- docs(wiki): add Architecture-Microkernel page (G6-T11) (5f6b4c9)
- chore(monitoring): document tail_sampling tuning runbook (G6-T07) (9cfb9c5)
- G6-T09: AI observability Grafana dashboard + alert rules + runbook (d888116)
- G6-T08: Alertmanager severity-based routing + inhibit rules + maintenance window (2b0f128)
- D3-T01: cli license cache — fix ldflag-injected public key loading (3301be2)
- G6-T07: OTEL Collector tail-sampling config + Tempo/Loki/Prometheus exporters (d7826f6)
- G14-CI-FIX: fix meta CI alerting workflows + auth coverage gate (664e155)
- G6-T06: slog trace_id correlation — unit tests for TraceLogHandler (acc10ee)
- A3-T06: wiki content cleanup — ɳ glyph + brand voice across cli wiki (272 files) (6ed7f77)
- G6-T05: add Grafana dashboards for error-rate-by-service and tenant-trace-browser (1e03cd5)
- G6-T04: add OTEL-based alerting rules and runbooks to monitoring stack (9534653)
- G6-T02 + G6-T03: migrate database/secrets/tenant packages to slog (4c70bd2)
- G6-T01: slog foundation — structured logging in waf.go, waf_test.go, and rls.go (a84a634)
- G3-T01: Windows binaries — .goreleaser.yml + build-tag fixes for cross-platform compilation (906df79)
- G14-T01 (cli): detection + env + wiki for push plugin (d65207b)
- G0-T10: migrate-from-bash command and upgrade guide (78fe491)
- G0-T04: init np_plugins table in postgres generator (d3da725)
- G0-T11: coverage gate Path A — fix root-cause test misses, not test strictness (84bb6dd)
- fix(cli): Wave 0+1 follow-up — cmd hygiene, compose v5 compat, test isolation (b52a75f)
- docs(ai): G0-T07 — Gemini OAuth setup wiki page + plugin-ai update (c0f6361)
- feat(redis,cron): G14-T02 + G14-T03 — cron env bootstrap + redis auto-enable (39ee831)
- feat(upgrade): G0-T09 — add --binary-url flag to upgrade/update/release commands (a1eda62)
- feat(claw): G0-T03 — nself claw migrate command + internal claw package (7801ca3)
- fix(ci): remove invalid YAML fromJSON syntax in CI Green Rate Dashboard workflow (c95899b)
- fix(compose): migrate pids_limit to modern Docker Compose syntax (deploy.resources.limits.pids) (a9137eb)
- fix(ci): expand gitleaks allowlist to cover all test and docs files (c557a54)
- fix(ci): resolve gitleaks config TOML syntax error (56f6c9d)
- fix(release): revert cross-repo dispatch to HOMEBREW_TAP_TOKEN PAT (7cd4413)
- fix(ci): pass --config to gitleaks in security-scan.yml (69aea9a)
- fix(ci): resolve gitleaks false positives and help-topics nil panic (15f17cd)
- fix(ci): replace gitleaks-action@v2 with CLI to eliminate license requirement (c351835)
- fix(sdk/py): declare wheel package path for hatchling (6c01421)
- fix(release): guard cross-repo dispatch against missing GitHub App secrets (da3c676)
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.0.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