Commit Graph

106 Commits

Author SHA1 Message Date
repo-worker b0fc9c2901 ci: migrate to thin ci-fleet-publish pipeline (oleks/ci-scripts#19)
ci/woodpecker/push/amd64 Pipeline failed
ci/woodpecker/push/arm64 Pipeline was canceled
Canary migration for the single/split quartet family. Rendered by
oleks/ci-scripts generator/render_thin_quartet.py from manifests/flake-hub.yaml
at oleks/ci-scripts@44d6ba9. Behavior-preserving per the diff posted on
oleks/ci-scripts#19: same env/secrets, same publish command, same
backend_options; image swaps to ci-fleet-publish:v1 and the explicit clone:
override is dropped (Woodpecker implicit clone is a verified superset for
this push-only, non-tag-history-dependent repo).
2026-07-09 19:53:25 +03:00
repo-worker b89d74caff lock: bump parity + woodpecker-peek (26.11-aligned fleet)
ci/woodpecker/push/arm64 Pipeline failed
ci/woodpecker/push/amd64 Pipeline was canceled
2026-07-07 18:26:24 +03:00
repo-worker c4643947e1 lock: align fleet-pins to 26.11 (d4079514) so packages build on 26.11
ci/woodpecker/push/arm64 Pipeline was canceled
ci/woodpecker/push/amd64 Pipeline was canceled
2026-07-07 18:22:25 +03:00
repo-worker fb6025c07b metamcp: also permit nodejs-slim-20 (build component)
ci/woodpecker/push/arm64 Pipeline was successful
ci/woodpecker/push/amd64 Pipeline failed
2026-07-06 18:48:34 +03:00
repo-worker 1985823233 metamcp: permit EOL nodejs 20 (26.11 marks it insecure)
ci/woodpecker/push/amd64 Pipeline is pending
ci/woodpecker/push/arm64 Pipeline is pending
2026-07-06 18:46:48 +03:00
repo-worker 2065b388a9 ci: generate pipeline from oleks/ci-scripts (oleks/ci-scripts#2)
ci/woodpecker/push/amd64 Pipeline failed
ci/woodpecker/push/arm64 Pipeline was successful
2026-07-04 19:37:18 +03:00
Oleks ac57d4ea5f chore: bump antigravity-nix dafe38f5bf01 -> 738d61a4b7d8
ci/woodpecker/push/amd64 Pipeline failed
ci/woodpecker/push/arm64 Pipeline failed
2026-06-26 23:32:56 +03:00
Oleks d6d6e16d40 gitea-local-fork: refresh to 1.26.0-unstable-2026-06-20
ci/woodpecker/push/amd64 Pipeline failed
ci/woodpecker/push/arm64 Pipeline was successful
Pin to gitea fork rev 764ca62aa88a (tag v1.26.0-unstable-2026-06-20).
Refreshed by nix-update via passthru.updateScript.
2026-06-20 10:56:04 +03:00
Oleks 24a75ee8d5 bump woodpecker-peek: dark-theme color palette
ci/woodpecker/push/amd64 Pipeline was successful
ci/woodpecker/push/arm64 Pipeline was successful
2026-06-06 13:54:43 +03:00
Oleks e534dfcff6 bump woodpecker-peek: textarea log + drawer expand
ci/woodpecker/push/amd64 Pipeline was canceled
ci/woodpecker/push/arm64 Pipeline was canceled
2026-06-06 12:59:28 +03:00
Oleks f77f3b7f11 bump woodpecker-peek: workflow group headers
ci/woodpecker/push/arm64 Pipeline was canceled
ci/woodpecker/push/amd64 Pipeline was canceled
2026-06-06 12:51:59 +03:00
Oleks cdbeebf5e7 bump woodpecker-peek: follow/maximize log knobs
ci/woodpecker/push/arm64 Pipeline was canceled
ci/woodpecker/push/amd64 Pipeline was canceled
2026-06-06 12:23:40 +03:00
Oleks e311bb1066 bump woodpecker-peek: preserve log disclosure state across rebuilds
ci/woodpecker/push/arm64 Pipeline was successful
ci/woodpecker/push/amd64 Pipeline was canceled
2026-06-06 00:45:56 +03:00
Oleks 2aadba34e2 bump woodpecker-peek: base64 log fix + cancel button
ci/woodpecker/push/amd64 Pipeline failed
ci/woodpecker/push/arm64 Pipeline was canceled
2026-06-05 23:49:46 +03:00
Oleks 7f2979d7ff bump woodpecker-peek: fix step log PID vs database ID
ci/woodpecker/push/arm64 Pipeline was canceled
ci/woodpecker/push/amd64 Pipeline was canceled
2026-06-05 23:31:16 +03:00
Oleks f8053537a9 feat(antigravity): update to v2.0 split; expose ide, ide-no-fhs, cli; add all to CI warming
ci/woodpecker/push/amd64 Pipeline failed
ci/woodpecker/push/arm64 Pipeline was canceled
2026-06-05 12:34:25 +03:00
Oleks 550c1d9f44 style: auto-format from pre-push hooks
ci/woodpecker/push/amd64 Pipeline failed
ci/woodpecker/push/arm64 Pipeline failed
2026-06-04 22:49:50 +03:00
Oleks 55594fd632 refactor(s390x): export rustc-symlink overlay + add formatter; refresh pins
Lift the s390x rustc symlink_file patch overlay into overlays.s390xRustcSymlink
so nixos-ci consumes one definition (patch travels with it) instead of
duplicating it. Add nixfmt-rfc-style formatter. Refresh fleet-pins + parity
inputs to HEAD so the lock collapses to a single nixpkgs (1c3fe55).
2026-06-04 22:49:48 +03:00
Oleks b797aefb28 refactor(ci): retrofit onto parity-lib mkAtticClosurePublish (#200)
ci/woodpecker/push/amd64 Pipeline failed
ci/woodpecker/push/arm64 Pipeline was successful
Replace the bespoke ci/publish.py attic-push logic with parity-lib's
mkAtticClosurePublish builder (attic-closure archetype, cluster#104,
emmett#44). Adds the parity input (locked at d265a79) and wires the
per-arch package closures through builders.mkAtticClosurePublish, with
the endpoint (nix-cache-upload.oleks.space) and passEntry
(infra/attic/ci_token) overridden so the attic push is byte-for-byte the
pre-parity behaviour.

.woodpecker/{amd64,arm64}.yaml thinned to PUBLISH=1 nix run .#publish /
.#publish-aarch64-linux so CI and a local run share one audited impl.
Dead ci/publish.py + ci/build.py removed.

pipeline-doctor: 9 passed / 0 failed / 0 warned.
2026-06-03 10:58:06 +03:00
Oleks e8050f9dfd ci: echo build arch (uname -m) as first line of every step for visibility
ci/woodpecker/push/arm64 Pipeline failed
ci/woodpecker/push/amd64 Pipeline failed
2026-06-02 13:42:35 +03:00
Oleks 0fd4cfe83d style: auto-format from pre-push hooks
ci/woodpecker/push/amd64 Pipeline failed
ci/woodpecker/push/arm64 Pipeline failed
2026-06-02 09:22:45 +03:00
Oleks 9d80f47625 ci: local-pipeline parity via stage/publish flake apps (cluster#192, emmett#44)
attic-closure archetype: no parity-lib builder exists for attic pushes, so
wrap the existing per-arch package build in ci/publish.py (woodpecker-peek
pattern) and expose `nix run .#{stage,publish}-amd64` + `.#publish`.

Two-halves rule: STAGE nix-builds every package in the arch list into the
local store (emmett-buildable); PUBLISH additionally attic-pushes each
closure. Local runs DRY-RUN unless --push/PUBLISH=1; CI sets PUBLISH=1.

The .woodpecker/{amd64,arm64}.yaml now call the same ci/publish.py so CI
and local runs can't drift. arm64 stays node-bound (no emmett cross path),
so it has no local-parity app. ci/build.py becomes a forwarding shim.
2026-06-02 09:22:39 +03:00
Oleks ef13a18b4c docs: gitea-local-fork end-to-end publishing flow
ci/woodpecker/push/arm64 Pipeline failed
ci/woodpecker/push/amd64 Pipeline failed
Rescued from the second flake-hub checkout (~/projects/flake-hub) before
that working copy was removed. Documents the path from local Gitea fork
to the attic binary cache.
2026-05-27 14:36:03 +03:00
Oleks 26bdad6d1b Wire oleks/mcp-chrome into flake-hub
ci/woodpecker/push/amd64 Pipeline failed
ci/woodpecker/push/arm64 Pipeline was canceled
Adds mcp-chrome as a flake input (mirroring the woodpecker-peek pattern)
and re-exposes two packages: mcp-chrome-wasm-simd (proven green, ~22 s)
and mcp-chrome-extension (KNOWN-BROKEN under nix-daemon; exposed for
local builds but kept out of the CI matrix to avoid red pipelines).

CI warms attic with mcp-chrome-wasm-simd on x86_64-linux and aarch64-linux
only; s390x cross and Darwin are out of scope.

Closes oleks/mcp-chrome#5.
2026-05-27 10:15:36 +03:00
Oleks b9d13a4814 flake: update woodpecker-peek (go 1.25 directive, fixes flake-hub build)
ci/woodpecker/push/arm64 Pipeline failed
ci/woodpecker/push/amd64 Pipeline failed
2026-05-24 18:53:34 +03:00
Oleks ac58ade9da add woodpecker-peek input + cache to attic via CI
ci/woodpecker/push/amd64 Pipeline was canceled
ci/woodpecker/push/arm64 Pipeline was canceled
Re-exposes oleks/woodpecker-peek as packages.<sys>.woodpecker-peek for
x86_64-linux and aarch64-linux, and adds it to ci/build.py so the
amd64/arm64 workflows push the closure to attic-infra-cache-k3s-1.
Consumers (emmett) then set services.woodpecker-peek.package = pkgs.woodpecker-peek
and pull the cached binary instead of rebuilding.
2026-05-24 18:16:23 +03:00
Oleks cb369d3be3 metamcp: observability patch — W3C traceparent + Prometheus /metrics (cluster#49, cluster#50)
ci/woodpecker/push/arm64 Pipeline failed
ci/woodpecker/push/amd64 Pipeline failed
Adds a postPatch step that applies metamcp-observability.patch to
the upstream metatool-ai/metamcp v2.4.22 source before pnpm build.
The patch:

  * Drops in apps/backend/src/lib/observability/{trace,metrics}.ts:
    AsyncLocalStorage trace context + parser/synthesizer per the W3C
    contract (Specs/mcp-request-id), plus a hand-rolled
    Counter/Histogram so we don't have to touch pnpm-lock.yaml /
    pnpmDeps hash (no new npm dependency).

  * Wires a top-level express middleware in apps/backend/src/index.ts
    that binds trace context, observes mcp_hop_duration_seconds on
    response close, and counts mcp_cancellation_total when the
    downstream client hangs up mid-response.

  * Adds /metrics to the Express app and last-resort process traps
    (unhandledRejection / uncaughtException) feeding
    mcp_uncaught_throw_total — the smoking-gun signal from
    cluster#44.

  * Patches process-managed-transport.send() to inject
    params._meta.traceparent on every outbound JSON-RPC bound for a
    stdio child (MCP _meta convention, Specs/mcp-request-id).

Retire when this lands upstream.
2026-05-24 05:34:47 +03:00
Oleks b38558cdcf added stalewood
ci/woodpecker/push/arm64 Pipeline was successful
ci/woodpecker/push/amd64 Pipeline was successful
2026-05-22 23:16:19 +03:00
Oleks ca88d13535 nix-deps: re-expose github:manelinux/nix-deps through the hub
ci/woodpecker/push/arm64 Pipeline was successful
ci/woodpecker/push/amd64 Pipeline was successful
Adds nix-deps as an input following our nixpkgs and re-exports its
package via mkPackages (gated to native x86_64/aarch64, since its
flake only emits eachDefaultSystem and would break the s390x cross).

Also adds .gitignore for build result symlinks.
2026-05-19 16:32:05 +03:00
oleks 577274b382 chore(gitea-local-fork): bump to v1.26.0-unstable-2026-05-17.1
ci/woodpecker/push/arm64 Pipeline was successful
ci/woodpecker/push/amd64 Pipeline was successful
Pin to oleks/main c45ea82 (PR #20: push SSE update on issue
close/reopen for project boards, fixes #19). Only src rev/hash/version
change; no go.mod or pnpm-lock changes so vendorHash and pnpmDeps stay
valid.
2026-05-17 21:05:55 +03:00
Claude 25bf426ae5 chore(gitea-local-fork): bump to v1.26.0-unstable-2026-05-17
ci/woodpecker/push/amd64 Pipeline failed
ci/woodpecker/push/arm64 Pipeline failed
Pin to oleks/main ad46f6c (PR #18: scope project-issue move to its own
project, fixes #17). Only src rev/hash/version change; no go.mod or
pnpm-lock changes so vendorHash and pnpmDeps stay valid.
2026-05-17 17:12:50 +03:00
Oleks 55d9a62c33 chore(gitea-local-fork): bump to v1.26.0-unstable-2026-05-16.1
Adds SSE toast notifications for project-board + milestone events
(#15). rev d4de99f96b. Frontend-only change; pnpmDeps.hash +
vendorHash verified unchanged.
2026-05-16 14:43:07 +03:00
Oleks bf0095dcd2 chore(gitea-local-fork): bump to v1.26.0-unstable-2026-05-16
ci/woodpecker/push/arm64 Pipeline was successful
ci/woodpecker/push/amd64 Pipeline was successful
Clean release pin (drops the -debug instrumentation build). Carries
the project-board SSE detach-ctx fix (#8) + milestone progress SSE
(#14). rev 9f588d3dd3 = squash-merge on oleks/main. pnpmDeps.hash +
vendorHash verified unchanged.
2026-05-16 10:28:33 +03:00
Oleks c4aa88d677 debug(gitea-local-fork): pin to SSE detach-ctx fix (bfc10289e6)
ci/woodpecker/push/arm64 Pipeline was successful
ci/woodpecker/push/amd64 Pipeline was successful
Temporary debug pin: rev bfc10289e6 carries the publish-path
instrumentation + the fix routing the async publish goroutine
through graceful.ShutdownContext() instead of the request ctx.
Will repin to a clean tagged release once verified.
2026-05-15 23:52:09 +03:00
Oleks 16b6f1ed21 chore(gitea-local-fork): bump to v1.26.0-unstable-2026-05-15.1
ci/woodpecker/push/arm64 Pipeline was successful
ci/woodpecker/push/amd64 Pipeline failed
Pin to oleks/main @ 9c1699feb5 — adds PR #7 (SSE push updates for
project board pages). pnpm-lock.yaml and go.mod are unchanged from
the previous pin so pnpmDeps.hash and vendorHash stay valid.
2026-05-15 22:23:01 +03:00
Oleks a9d70c58b1 fix(gitea-local-fork): refresh pnpmDeps.hash for v1.26.0-unstable-2026-05-15
ci/woodpecker/push/arm64 Pipeline was successful
ci/woodpecker/push/amd64 Pipeline failed
The previous pin's pnpm-lock.yaml drifted between snapshots; the
cached fetchPnpmDeps output was stale on hosts without a warmed
store, causing ERR_PNPM_NO_OFFLINE_TARBALL on remote builders.
Recomputed via nix build with empty hash, captured the 'got:'
value.
2026-05-15 17:15:07 +03:00
Oleks 0e20e87361 chore(gitea-local-fork): bump to v1.26.0-unstable-2026-05-15
ci/woodpecker/push/arm64 Pipeline failed
ci/woodpecker/push/amd64 Pipeline failed
Picks up oleks/gitea#2 (user-scope and org-scope project board REST
endpoints under /api/v1/users/{username}/projects/... and
/api/v1/orgs/{org}/projects/...) plus the missing MoveProjectIssue
test for repo scope.
2026-05-15 16:38:54 +03:00
Oleks 2af7732077 style: auto-format from pre-push hooks
ci/woodpecker/push/arm64 Pipeline was successful
ci/woodpecker/push/amd64 Pipeline was successful
2026-05-15 13:02:47 +03:00
Oleks 7d58ed23a4 metamcp: package v2.4.22 as a NixOS-deployable service
Single-derivation pnpm/Turbo monorepo build producing:
  - metamcp           full orchestrator (waits for PG, runs drizzle
                      migrations, launches backend :12009 + frontend :12008)
  - metamcp-backend   bare backend launcher
  - metamcp-frontend  Next.js standalone server.js launcher

Notes:
  - Upstream pins packageManager: pnpm@9.0.0; rewrite to match the nixpkgs
    pnpm (Turbo requires the field but won't fight a matching version).
  - Frontend uses next.config 'output: standalone'; we copy .next/static
    and public/ into the standalone tree since Next doesn't.
  - HOSTNAME defaults to 0.0.0.0 (override with METAMCP_HOSTNAME) — Next
    standalone otherwise inherits the system hostname and is unreachable
    on 127.0.0.1.
2026-05-15 13:02:47 +03:00
Oleks cf54f1c94f ci: build gitea-local-fork and push to attic
ci/woodpecker/push/arm64 Pipeline was successful
ci/woodpecker/push/amd64 Pipeline was successful
Add the renamed gitea-local-fork derivation to the Woodpecker
build matrix on x86_64 and aarch64 (the only platforms the
derivation supports — see flake.nix). Resulting closure is
pushed to attic-infra-cache-k3s-1 so subsequent
`just gitea-run` invocations resolve from cache rather than
recompile Go 1.26.3 locally.
2026-05-13 13:39:46 +03:00
Oleks ef014a9116 chore: rename gitea-projects-api → gitea-local-fork
The fork tracked by this derivation is no longer a single-feature
branch ("feat/projects-api") but the integration tip of Oleks's
local gitea fork ($HOME/projects/gitea, branch oleks/main), carrying
upstream/main + PR #37518 Projects REST API + a CI gate + fork-local
commits. Reflect the broader scope in the package and attribute name,
and document the local fork path + branch in the derivation header.
2026-05-13 13:39:39 +03:00
Oleks bbf81d6ac5 ci: split workflow per arch to fix cross-arch PVC scheduling
ci/woodpecker/push/arm64 Pipeline was successful
ci/woodpecker/push/amd64 Pipeline was successful
A single-workflow with steps spanning amd64 and arm64 shares one
PVC. The clone step binds the PV to whichever arch ran first, and
the other arch's pod is then permanently Unschedulable (node
affinity mismatch on the PV). Splitting into separate workflow
files gives each arch its own clone, its own PVC, and its own node
binding.
2026-05-12 21:27:34 +03:00
Oleks d5101ea3fe gitea-projects-api: refresh to 1.26.0-unstable-2026-05-12
ci/woodpecker/push/woodpecker Pipeline failed
Pin to gitea fork rev 235248620e05 (tag v1.26.0-unstable-2026-05-12).
Refreshed by nix-update via passthru.updateScript.
2026-05-12 16:21:54 +03:00
Oleks 3dda8347e4 style: auto-format from pre-push hooks
ci/woodpecker/push/woodpecker Pipeline was successful
2026-05-12 00:02:47 +03:00
Oleks 949f0d2153 gitea-projects-api: refresh to 1.26.0-unstable-2026-05-11
Pin to gitea fork rev 20f31b8967a4 (tag v1.26.0-unstable-2026-05-11).
Refreshed by nix-update via passthru.updateScript.
2026-05-12 00:02:46 +03:00
Oleks 45c8bc03e8 gitea-projects-api: support nix-update, add justfile targets
Refactor so `src` is a direct `fetchgit` (instead of a wrapper drv), and
move the package.json engine-strip into a `frontendSrc` derivation that
only fetchPnpmDeps sees. nix-update needs to introspect `src.url` and
`src.rev`; the previous wrapper hid them.

Expose `frontend.pnpmDeps` via passthru so nix-update finds the third
hash. Now `just gitea-update` does the full cycle:
  1. git ls-remote → latest commit on feat/projects-api
  2. set src.hash / pnpmDeps.hash / goModules.vendorHash to fakeHash
  3. nix-build each to capture real hashes
  4. nom build the package for final verification

nix-update rewrites version to nixpkgs `<tag>-unstable-<date>` style. Lose
the descriptive "-projects-api" suffix in the version, but pname is
unchanged so store paths still read `gitea-projects-api-*`.
2026-05-11 22:25:05 +03:00
Oleks c462cee781 gitea-projects-api: package fork carrying upstream PR #37518
Builds oleks/gitea feat/projects-api (Gitea 1.27.0-dev + Projects REST API)
as `nix build .#gitea-projects-api`. Exposes `out` (binary) and `data`
(templates, options, frontend bundle, locale files) matching the layout
nixpkgs' `services.gitea` module expects.

Notes:
- Pins Go 1.26.3 (built from upstream src) because the fork's go.mod
  requires it, while pinned nixpkgs only has 1.26.0.
- Patches package.json to drop engines.pnpm before fetchPnpmDeps runs:
  gitea wants pnpm >= 11, but nixpkgs only packages pnpm 10. The
  pnpm-lock.yaml is v9 (forward-compatible) so pnpm 10 produces the
  same install closure.
- Platforms: x86_64-linux, aarch64-linux (skipped on s390x cross since
  the frontend pnpm step has no s390x toolchain).
2026-05-11 20:32:36 +03:00
Oleks 80c05b582e ci: make env probes non-fatal, swap free for /proc/meminfo
ci/woodpecker/push/woodpecker Pipeline was successful
Pipeline #41 died with exit 127 on `free -h` — procps isn't in the
nix-ci image. New info() helper runs the command and ignores the exit
code, so missing tools no longer abort the build. Also switched to
/proc/meminfo since it's always available on Linux.
2026-04-29 11:44:50 +03:00
Oleks d95501ed01 style: auto-format from pre-push hooks
ci/woodpecker/push/woodpecker Pipeline failed
2026-04-29 11:38:24 +03:00
Oleks 65101ed034 ci: skip google-antigravity builds
google-antigravity pulls in google-chrome, which transitively builds
liberation-fonts; fontforge segfaults while generating the .ttf files
(pipeline #40). Package definitions stay in the flake for local
builds — re-enable in CI once upstream fontforge is fixed.
2026-04-29 11:38:22 +03:00