Search
Posts
Two releases in four minutes: why release.yml fires twice
Why startaitools saw v1.33.31 and v1.33.32 land four minutes apart: the post+assets cadence is two pushes to master, so release.yml stamps each one.
ReadBash 2>/dev/null Hides stderr, Not the Exit Code
Bash 2>/dev/null hides the message but not the exit code. Under set -euo pipefail, the suppressed exit still aborts a substitution, killing first deploys.
ReadTag a Tested SHA, Not a Bot Commit
A bot push on a protected branch wedges a CI release in a tag-already-exists loop. Move the version bump into a PR and tag an already-CI-green SHA on main.
ReadMove the deploy runner onto the tailnet, skip Tailscale OIDC
Move the GitHub Actions deploy runner onto the tailnet, skip the ephemeral Tailscale OIDC handshake. Add join-tailnet and send-revision toggles.
ReadWhen a Third-Party CI Credential Expires, the Deploy Fallback Has to Already Live on the VPS
A VPS-resident deploy script plus a SHA-pin guard turns any third-party CI credential expiry into a one-line SSH recovery.
ReadWhen git describe Traps Your CI Semver Bump, Look Up the Highest Existing Tag Instead
A bot's [skip ci] version-bump commit that was rejected by branch protection creates an annotated tag outside the branch's ancestry. git describe keeps returning the older reachable tag, the bump recomputes a version that was already tagged, and the release job fails with `tag already exists` on every push. Use `git tag --list 'v*' --sort=-v:refname | head -n1` (highest existing tag, not git describe) and the version stays monotonic forever.
ReadWhen Your Documentation Evaluation Is Driving the Cleanup, Report Gap Answers by Rank Instead of Adding Them to the Scored Set
A self-improving retrieval evaluation should not grade its own homework. Report the rank of each gap-filler doc in retrieval (answerRank per gap) and leave the fixed scored question set untouched.
ReadCoordinating a Product Launch Across Multiple Repos
The order of operations for a product launch across three repos and three releases: what each step prevents and what to check after the merge.
ReadVerify Audit Evidence with a Signed Payload, Not by Format
When eight audit-evidence publishers each emit a different format, one canonical signed payload gives one verifier a tampering signal without erasing history.
ReadSMTP 250 is not delivery: three receipts that fix transactional mail
SMTP 250 is not delivery. Three receipts fix transactional mail: a frozen ApprovedMessage, phase-classified outcomes (RFC 5321 §4.2.1), and reconciliation before any resend.
Read