Publish the packages from CI, with a token that can actually publish
The secret exists now β a Forgejo token scoped to `write:package`, added to this repository β so `publish_packages` does the publishing instead of a person doin...
Publish the packages from a job of their own, and never nest a second pdf.js
The publish steps sat inside `build`, so run 12014 failed and took the image with it β and `pnpm install --frozen-lockfile` was clean locally, which is the tell...
Prove the deploy by digest, not by tag
The preceding commit stops `set image` being a silent no-op. This asserts the outcome: after the rollout, the tag is resolved to a digest at the registry and th...
A rebuild of the same commit deployed nothing and reported success
The image is tagged with the commit SHA, so rebuilding the same commit produces an identical image reference. `kubectl set image` then changes nothing, the Depl...
Let a rollout finish what the old pod was doing
preStop sleeps 10s before the process sees SIGTERM. Kubernetes removes the pod from its EndpointSlice and signals it at the same moment, and Traefik only learns...
Keep an option card and its lines off a page break
The per-option line table was added without the page-break rules its sibling table has, so a long option could be cut across pages mid-row.
Read either address shape so the block cannot go blank
Reading only the new addressLines makes the address disappear when the API has not been rebuilt yet and is still sending addressLine plus addressDetails. A blan...
Print the address as the lines it is written on
The address arrived as one string, so a real one came out as '4300 West Tropicana Ave Building A Main Floor Suites 110-132, Las Vegas, NV 89103' β not something...
A committed term is worth what it commits to
The card led with the recurring rate whatever the term, so a three-year commitment priced at $100 a month was presented to the customer as $100. It is $3,600, a...
State the first invoice on an option that has a setup fee
The card already listed the setup fee, but the only figure that summed it with the period price β the total over term β was gated on the commitment running long...
Format the phone numbers on the customer's quote
The page a customer opens printed every number exactly as stored β "9495550134" on the letterhead, and the same again under Your Contact. This app had no phone ...
A signing page wears the sender's brand, not Kamo's
getThemePath took a hostname and used its FQDN with dots turned into dashes as the bucket folder. That could only answer for an org that HAD a hostname, and a d...
A party who already signed gets their copy, not the document again
The session always started at "welcome", so a signer following the link in their completion email β or simply reopening the invitation β was walked through the ...
Group an imported radio field's buttons natively
The buttons of one AcroForm radio field are imported as separate linked fields, one choice each, so each keeps its own box on the page. They were named after th...
Make the kubectl install resilient to flaky egress
With the PATH bug fixed, the deploy then failed on a transient TLS drop while downloading kubectl: curl: (56) OpenSSL SSL_read: error:0A000119:decryption fail...
Invoke kubectl by absolute path in the step that installs it
Root cause of deploy_k1m1 never succeeding. The install step did: echo "$BIN" >> "$GITHUB_PATH" kubectl version --client but $GITHUB_PATH only applies to SU...
Point the deploy kubeconfig at the LAN IP, not the k1m1 hostname
deploy_k1m1 had never succeeded (0/5 since the repo was created). The job rewrote the kubeconfig API server to https://k1m1:6443, but the runner's job container...
Disable hreflang alternates header; make LANGUAGE_NAMES total
- routing.ts: set alternateLinks: false β the app is noindex/nofollow with no consumer for the Link: rel=alternate header next-intl emits by default for all...
Install turbo via npm in Docker pruner stage; pin pnpm; add .dockerignore
The pruner stage ran `pnpm add -g turbo` before any package.json existed, so corepack grabbed pnpm 11 and failed with "global bin directory /pnpm/bin not in PAT...
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.