Skip to content

0.16.0: sysupdate, and swap on a box that has none - #38

Merged
ralyodio merged 1 commit into
masterfrom
release-0.16.0
Aug 30, 2026
Merged

0.16.0: sysupdate, and swap on a box that has none#38
ralyodio merged 1 commit into
masterfrom
release-0.16.0

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

Bumps the version to 0.16.0 so the tag and release have something to point at. Eight commits since v0.15.0, one of them a new command, so the minor moves.

What is in it

sysupdate (#37) — apt lists, apt packages and snaps in one command, reachable from the pit as /update. Uses apt rather than apt-get on purpose, only reaches for sudo when it is not already root, skips snaps on a box with no snapd, and stops at the first step that fails.

A 2G swapfile on a box with no swap at all (#36) — root-ubuntu.sh only acts where there is no swap whatsoever, so a machine with a swap partition or zram is left alone. Declines on btrfs and zfs, inside a container, and when the disk cannot spare the space. Sets vm.swappiness=10 alongside.

One ssh-agent per user under systemd (#35).

The hardware inventory set — lm-sensors, smartmontools, nvme-cli, ipmitool, acpi, powertop, with sensor detection on bare metal.

companions: diskpush, and installers that are not npm (#34).

porkbun (#32, #33) — Porkbun's own pre-flight, structured refusals kept structured, and the fact that registration spends prepaid credit rather than a card.

After this merges

v0.16.0 gets tagged and released. Worth noting while I am here: v0.15.0 was tagged but its GitHub release was never created, so the releases page still shows v0.14.0 as latest. This release will jump over that gap; say the word if you want a v0.15.0 release backfilled too.

576 tests passing, typecheck unchanged.

🤖 Generated with Claude Code

https://claude.ai/code/session_013TerE4nvNU3jvS51nRR6Pd

Eight commits since 0.15.0, one of them a new command, so the minor moves.

- sysupdate: apt lists, apt packages and snaps in one command, reachable
  from the pit as /update (#37)
- root-ubuntu.sh: a 2G swapfile on a box with no swap at all, plus
  vm.swappiness=10 (#36)
- root-ubuntu.sh: one ssh-agent per user under systemd (#35)
- root-ubuntu.sh: lm-sensors, smartmontools and the rest of the hardware
  inventory set, with sensor detection on bare metal
- companions: diskpush, and installers that are not npm (#34)
- porkbun: Porkbun's own pre-flight, structured refusals, and the fact that
  registration spends prepaid credit rather than a card (#32, #33)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013TerE4nvNU3jvS51nRR6Pd
@github-actions

Copy link
Copy Markdown

ThreatCrush Security Scan

16 finding(s)

HIGH/CRITICAL: 5 | MEDIUM: 2 | LOW: 9

Severity Rule Location
HIGH sh-remote-script-execution root-ubuntu.sh:139
HIGH sh-remote-script-execution root-ubuntu.sh:2816
HIGH sh-remote-script-execution root-ubuntu.sh:2820
HIGH sh-remote-script-execution root-ubuntu.sh:2969
HIGH sh-remote-script-execution root-ubuntu.sh:3998
MEDIUM redos-nested-quantifier src/domain-free.ts:56
MEDIUM redos-nested-quantifier src/porkbun.ts:506
LOW secret-generic-credential src/credentials.ts:36
LOW insecure-temp-file test/blog.test.ts:73
LOW insecure-temp-file test/blog.test.ts:74
LOW insecure-temp-file test/credentials.test.ts:43
LOW insecure-temp-file test/credentials.test.ts:44
LOW secret-generic-api-key test/credentials.test.ts:208
LOW insecure-temp-file test/download.test.ts:99
LOW insecure-temp-file test/download.test.ts:100
LOW secret-generic-credential test/shorten.test.ts:36

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio merged commit ee29b26 into master Aug 30, 2026
5 checks passed
@ralyodio
ralyodio deleted the release-0.16.0 branch August 30, 2026 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant