27 Commits

Author SHA1 Message Date
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 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 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 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 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 df96ba5c89 feat: add xontrib-direnv (xonsh-direnv 1.6.5)
ci/woodpecker/push/woodpecker Pipeline failed
2026-04-26 16:51:13 +03:00
Oleks 4e2bb71ed5 feat: add xontribs, hyprspace, and gcc15-fixes overlay
ci/woodpecker/push/woodpecker Pipeline failed
- packages/xontribs.nix: xontrib-prompt-starship, -broot, -term-integrations
  wheels for use with `programs.xonsh.extraPackages` (or xonsh.override)
- packages/hyprspace.nix + hyprspace flake input (flake=false): rebuild
  plugin against the consumer's hyprland; exposed via overlays.hyprspace
- overlays/gcc15-fixes.nix: hotdoc/kitty/libsecret/xdg-desktop-portal/afdko
  workarounds so fleet nodes on the same pin can opt in with one line
- flake.nix: lift overlays out of eachSystem to the root (overlays.default
  was previously nested per-system, which doesn't match flake schema)
2026-04-23 20:18:35 +03:00
Oleks 49fd58b363 Add attic-client (s390x) and geesefs to flake-hub, rewrite CI in xonsh
Move attic-client s390x cross-compilation from building/s390x/attic-client-s390x
and geesefs from building/s390x/geesefs-s390x into flake-hub. Replace ci/build.sh
with ci/build.xsh. All packages now built and pushed to attic via the existing
Woodpecker pipeline on push to main.
2026-03-15 13:09:05 +02:00
Oleks b83bbaaeab style: auto-format from pre-push hooks 2026-03-15 11:25:47 +02:00
Oleks d832787e8b Switch xonsh source from PyPI to GitHub tag, add Woodpecker CI
ci/woodpecker/tag/woodpecker Pipeline failed
Use fetchFromGitHub with tag = version so the version string and
source are inherently linked via rec. Adds .woodpecker.yaml to
build all flake packages on tag push.
2026-03-15 11:25:43 +02:00
Oleks 83114ba82d Add meta.mainProgram and shellPath for NixOS compatibility
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-14 15:49:25 +02:00
Oleks e72bc456ce Wrap xonsh with extraPackages support for NixOS module compatibility
ci/woodpecker/push/woodpecker Pipeline was successful
2026-03-14 15:47:31 +02:00
Oleks 0392df4a7a style: auto-format from pre-push hooks
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-13 23:54:02 +02:00
Oleks 364fd4f610 Fix packages: use lib instead of stdenv.lib, fix hello-world source 2026-03-13 23:54:01 +02:00
Oleks ef49e03f76 Refactor: consolidate packages into flake-hub 2026-03-13 00:31:12 +02:00
Oleks 18ff5e1de5 Initial flake hub – oleks 2026-03-12 19:53:43 +02:00