Commit graph

84 commits

Author SHA1 Message Date
80668e18cd
removed crafter.build form the dashboard
All checks were successful
Deploy / build-deploy (push) Successful in 6m59s
2026-10-17 01:34:01 +02:00
15af22eea5
CI: give the deploy runner a label of its own (catcrafts-deploy)
All checks were successful
Deploy / build-deploy (push) Successful in 7m17s
A job goes to whichever runner carrying its label polls first, and the
`flatpak` label this job shared with imsd's package job is also on the
organisation-wide cx33-org-flatpak runner (registered 2026-10-14), which
has no deploy mounts, no Flatpak volume and defaults to an alpine image.
Crafter.Build's run 550 landed there on 2026-10-16 and failed before
building; runs 549 and 552 of this job reached the right runner only
because it polled first.

The repository's runner now declares `catcrafts-deploy:docker://archlinux:latest`
(a config edit and a service restart; labels are not part of the
registration), and the job asks for that. Nothing else changes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-17 00:22:50 +02:00
b978e8884e
CI: back on the stable crafter-build Flatpak, now that 2.2.0 carries the Shader API
All checks were successful
Deploy / build-deploy (push) Successful in 7m42s
Crafter.Build 2.2.0 (2026-10-16) releases the Shader `defines` and
`variant` fields Crafter.Graphics master has used since 2026-10-06, so
CRAFTER_REF goes back to //stable and the toolchain moves only with a
Crafter.Build release again, the way imsd's package job has it. The
comments and the README now describe beta as the stopgap for the next
time Crafter.Graphics runs ahead of a release.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16 23:55:58 +02:00
c9d2f2d991
CI: build with the beta crafter-build Flatpak, chosen through CRAFTER_REF
All checks were successful
Deploy / build-deploy (push) Successful in 8m44s
Run 533, the first on the Flatpak toolchain, installed the Flatpak, built
the server and passed all 28 suites, then failed building the wasm bundle:
Crafter.Graphics master has used the Shader `defines` and `variant` fields
since 2026-10-06, and the `stable` Flatpak is the 2.1.0 release from three
days before that. Only Crafter.Build master has them, so the toolchain is
its `beta` branch for now, which is also what the rolling `latest` tarball
this job used to download was: a build of master.

The branch is one variable at the top of the job, the way imsd's package
job pins its own (imsd stays on stable; it has no Crafter.Graphics). Flip
it back to //stable once a Crafter.Build release carries the fields. The
wrapper scripts expand the ref at write time, and the install step prints
them along with the Flatpak's branch and commit so a run's log says which
toolchain it used.

Verified locally with beta 2.1.0-10-g4af9280: the wasm bundle builds and
the server suite passes, except ShouldServePostPages, which needs the media
mirror on the deploy mount that only exists in CI.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16 23:33:06 +02:00
0bfa715e6a
CI: build with the Crafter.Build Flatpak on a repo-scoped privileged runner
Some checks failed
Deploy / build-deploy (push) Failing after 6m19s
Crafter.Build's CI publishes only the Flatpak since 2026-10-02, so the
rolling `latest` tarball the Install crafter-build step downloaded is gone
and the 2026-10-12 deploy failed with a 404 before building anything.

Take the route imsd's package job takes. The job runs on `flatpak`, a
privileged runner registered to this repository alone
(forgejo-runner-catcrafts on the box, same arrangement as imsd's), with the
installed Flatpak and its Sdk kept on a docker volume between runs. The
container installs nothing that compiles any more: clang, lld, libc++, the
WASI sysroot, cmake, perl, gpg and OpenSSL all come with the Flatpak and its
Sdk. `crafter-build` is a wrapper around `flatpak run`, `crafter-run` runs a
built binary inside the sandbox, cast is installed under /opt where the
sandbox can see it, and the cache path is the Flatpak's own.

The server binary links the Flatpak's libc++, libc++abi and libunwind, which
are newer than the host's, so the deploy ships them next to the binary the
way it already ships libmsquic; the rpath finds them there. They need at
most GLIBC_2.38, the host has 2.41.

ShouldMatchBankTransfers passed braced lists straight into a std::span
parameter. That compiled only because libc++ 22 had the C++26
span(initializer_list) constructor; the libc++ 23 in the Flatpak does not,
so the lists now go through a vector like the rest of the file.

deploy/README.md documents the runner, the sandbox's private /tmp and how
to run a built binary where the host lacks a matching libc++.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 16:32:57 +02:00
234bff9db6
added fp6-img
Some checks failed
Deploy / build-deploy (push) Failing after 42s
2026-10-12 02:26:54 +02:00
25805a093a removed fp6 from shop
All checks were successful
Deploy / build-deploy (push) Successful in 9m28s
2026-09-05 18:38:39 +02:00
eb655b24b6 json-ld fix
All checks were successful
Deploy / build-deploy (push) Successful in 4m6s
2026-08-30 22:18:24 +02:00
1006bd1bae text change
All checks were successful
Deploy / build-deploy (push) Successful in 4m35s
2026-08-24 18:53:27 +02:00
413740af2e text change
All checks were successful
Deploy / build-deploy (push) Successful in 3m48s
2026-08-21 04:52:25 +02:00
aaa7a8ce99 bank tranfer fix
All checks were successful
Deploy / build-deploy (push) Successful in 3m11s
2026-08-20 23:33:50 +02:00
94a995d814 html fix
All checks were successful
Deploy / build-deploy (push) Successful in 3m6s
2026-08-20 22:23:13 +02:00
bb91324d89 text change
All checks were successful
Deploy / build-deploy (push) Successful in 3m8s
2026-08-20 21:56:52 +02:00
675a234a9b text change 2026-08-20 21:53:55 +02:00
df91762271 Replaced mollie
All checks were successful
Deploy / build-deploy (push) Successful in 3m47s
2026-08-20 20:15:47 +02:00
7098ac75cb crypto payment message
All checks were successful
Deploy / build-deploy (push) Successful in 3m18s
2026-08-20 03:08:30 +02:00
1a38cfe5d7 crypto payment message
All checks were successful
Deploy / build-deploy (push) Successful in 3m13s
2026-08-20 02:50:28 +02:00
5d3a3adb86 crypto test fix
All checks were successful
Deploy / build-deploy (push) Successful in 3m40s
2026-08-20 01:49:15 +02:00
45992c4f91 payment tests
Some checks failed
Deploy / build-deploy (push) Failing after 4m58s
2026-08-20 01:36:42 +02:00
47d302a9a4 crypto fix
All checks were successful
Deploy / build-deploy (push) Successful in 2m26s
2026-08-20 00:09:08 +02:00
2a4e2c1c85 crypto fix
All checks were successful
Deploy / build-deploy (push) Successful in 2m32s
2026-08-19 23:55:01 +02:00
1d6b04c4f7 typo
All checks were successful
Deploy / build-deploy (push) Successful in 2m28s
2026-08-19 19:02:21 +02:00
ed61fb5ca5 fp6+
All checks were successful
Deploy / build-deploy (push) Successful in 3m6s
2026-08-19 17:19:51 +02:00
a8bc400371 video seo
All checks were successful
Deploy / build-deploy (push) Successful in 2m33s
2026-08-19 00:02:32 +02:00
faf881fa0c added missing icons
All checks were successful
Deploy / build-deploy (push) Successful in 3m0s
2026-08-18 21:21:41 +02:00
593bdb17d4 112 tested
All checks were successful
Deploy / build-deploy (push) Successful in 3m21s
2026-08-18 14:52:49 +02:00
4666c1995f markdown fix
All checks were successful
Deploy / build-deploy (push) Successful in 2m23s
2026-08-18 11:12:24 +02:00
320af54b3d text change
All checks were successful
Deploy / build-deploy (push) Successful in 2m26s
2026-08-17 17:32:09 +02:00
c31797bd9a retire the bunq integration
All checks were successful
Deploy / build-deploy (push) Successful in 3m32s
The webhook is deregistered at bunq and the callback endpoint, its parser,
default-deny classifier, dedup ledger and signature check are removed; the
code is in git history if a bank feed ever comes back. /financials keeps
reading the hand-maintained aggregates file, and sales + shop donations
stay live from the order ledger.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 11:43:09 +02:00
4c49000d46 fix shopfront pin for the shortened donate button
All checks were successful
Deploy / build-deploy (push) Successful in 3m33s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 11:23:45 +02:00
c9c8e9ace8 text change
Some checks failed
Deploy / build-deploy (push) Failing after 3m4s
2026-08-17 11:19:50 +02:00
5be98cff96 text change
Some checks failed
Deploy / build-deploy (push) Has been cancelled
2026-08-17 11:16:49 +02:00
3b12a6b02a text change
All checks were successful
Deploy / build-deploy (push) Successful in 2m45s
2026-08-17 11:11:23 +02:00
abbd616b40 donation item, shop soft open
All checks were successful
Deploy / build-deploy (push) Successful in 4m11s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 11:04:03 +02:00
b0666841f6 sanctions block list
All checks were successful
Deploy / build-deploy (push) Successful in 2m18s
2026-08-15 03:22:25 +02:00
749f525f83 tests and eurc
All checks were successful
Deploy / build-deploy (push) Successful in 4m19s
2026-08-15 00:54:05 +02:00
33c68c2f44 financial page with bank data
All checks were successful
Deploy / build-deploy (push) Successful in 1m48s
2026-08-14 04:14:13 +02:00
e68d2c245c finacial page
All checks were successful
Deploy / build-deploy (push) Successful in 2m20s
2026-08-14 02:50:58 +02:00
70668af8f5 coingate
All checks were successful
Deploy / build-deploy (push) Successful in 3m10s
2026-08-13 23:34:19 +02:00
284f8d3e49 renamed fp6
All checks were successful
Deploy / build-deploy (push) Successful in 6m4s
2026-08-12 00:06:22 +02:00
38688a68f5 CI fix
All checks were successful
Deploy / build-deploy (push) Successful in 6m20s
2026-08-10 01:51:39 +02:00
6841623e23 posts and avif
Some checks failed
Deploy / build-deploy (push) Failing after 5m49s
2026-08-10 01:37:26 +02:00
2fa6e70af1 order confirmation
All checks were successful
Deploy / build-deploy (push) Successful in 6m14s
2026-08-09 00:14:09 +02:00
aa2327ff1d warranty change
All checks were successful
Deploy / build-deploy (push) Successful in 6m47s
2026-08-08 23:27:06 +02:00
fb6d85aec9 warranty change
Some checks failed
Deploy / build-deploy (push) Has been cancelled
2026-08-08 23:25:46 +02:00
2f5ccd272e fixed links
All checks were successful
Deploy / build-deploy (push) Successful in 8m16s
2026-08-08 20:04:36 +02:00
ae30ac69f7 privacy policy
All checks were successful
Deploy / build-deploy (push) Successful in 8m1s
2026-08-08 14:38:14 +02:00
867bed2b5f ci: redeploy to pick up the backfilled 13b048149b5511dd.h264.mp4
The H.264 sibling landed on the media mount after the previous deploy
ran, and fetch-media.sh only discovers siblings at build time.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-08 03:35:05 +02:00
a625176c7d media: H.264 fallback beside every AV1, and the post links the H.264
All checks were successful
Deploy / build-deploy (push) Successful in 7m30s
The AV1-only publish lasted four hours in the wild: the first viewer on
mobile Safari got "bad media error" from the raw file, because a post's
link is fetched raw — Lemmy apps and browsers play that exact URL, with
no <source> negotiation in front of it. The previous commit's note
("--raw ... if that audience matters") had it backwards: the audience
that cannot play AV1 is not a per-post judgement call, it is whoever
happens to open the thread on an iPhone.

So publish-media.sh now emits two encodings and points the post at the
compatible one:

  * Every video transcode also produces <hash>.h264.mp4 (x264 crf 23,
    same denoise, same frames), uploaded beside the AV1 under the AV1's
    hash — the poster's sibling-naming trick, reused, so fetch-media.sh
    finds it by name with nothing to look up.
  * The printed URL to paste into the post is the H.264 one. pict-rs
    can thumbnail it too, so instance thumbnails come back as a bonus.

fetch-media.sh adopting an own-origin .h264.mp4 URL swaps the AV1 back
in as the page's primary when it is on the mount, and records the H.264
as `fallback` in posts.json. The renderer turns a non-empty fallback
into a <source> pair: the AV1 first with an explicit codecs parameter —
both files are video/mp4, so the parameter is the only thing that lets
a non-AV1 browser skip to the file it can play — and the H.264 second.
Browsers with AV1 keep downloading the small file; Safari before 17
gets one that plays instead of an element that will not.

e2e gains the matching conditional gate: a page offering an av01
<source> must offer an .h264.mp4 one, so an AV1 video can never again
ship without its fallback.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-08 03:14:51 +02:00
c21aa636aa privacy: public analytics, and the edit history replaces the changelog promise
All checks were successful
Deploy / build-deploy (push) Successful in 7m39s
The posts-feed note promise became a link: every version of this page and
its diffs are at /legal/privacy/history (redirect to this file's history).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-08 02:50:52 +02:00