Skip to content

build: dev environment on devenv (devenv-fleet v0.1.0) - #415

Open
fts-forge[bot] wants to merge 1 commit into
mainfrom
build/sta-635-devenv
Open

fts-forge[bot] wants to merge 1 commit into
mainfrom
build/sta-635-devenv

Conversation

@fts-forge

@fts-forge fts-forge Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

STA-635 (devenv phase 2: Task), plan §6.2 / §8 / §9 / §12. Pilot was architect #259.

What changes

  • Dev shell → devenv. devenv.nix + devenv.yaml (+ devenv.lock) import devenv-fleet v0.1.0 (rust, dioxus, telemetry, darwin). .envrc: eval "$(devenv direnvrc)", use devenv, then dotenv_if_exists .env (no dotenv.enable).
  • devenv up (just dev) = server (task-server on 127.0.0.1:18080, health-gated) + web (just css, dx serve) + Teley/OTLP collector (:8787 / :4318). just server = devenv up server.
  • Slim flake (packaging only): crane builds, images, nixosModules.task-server (+ task-email-watcher). Removed packages.task-desktop, devShells (shells/default.nix, shells/ci.nix), prek.nix, cargo-rail.nix. nixpkgs follows devenv-fleet's; the toolchain is devenv-fleet.lib.toolchainFor, so shell and hermetic builds share one rustc. x86_64-darwin dropped (nixpkgs 26.11 has none).
  • CI: checks.yml Lint/Tests/Wasm run every step with shell: devenv shell -- bash -e {0}; setup runs fleet-doctor (fails unless rustc is the pinned store path, so kache entries are shared with local shells). shared-tools puts the pinned devenv on PATH for every self-hosted job. hosted-nix-rust caches the source-built tools (cargo-rail, dx, wasm-bindgen) as a file:// binary cache keyed on devenv.lock. images.yml builds in the tag's own shell (devenv if the tag has devenv.nix, else the old flake shells, for re-publishing older tags). pr.yml stays on a plain hosted toolchain; cargo-hakari 0.9.36 → 0.9.38 (devenv-fleet's) — cargo hakari generate reported no changes, manage-deps no operations.
  • Scripts/docs: Justfile, ci-local-hook.sh, desktop/linux.sh, node-binary-linux.sh, the macOS/iOS build scripts, the test suites' READMEs/configs, AGENTS.md, skills and docs: nix develop → devenv shell --. just prek-bump removed (prek is pinned in devenv-fleet). dx no longer needs env -u RUSTC_WRAPPER (devenv-fleet's dx sets DX_NO_RUSTC_WRAPPER=1).
  • TMPDIR socket gotcha: checked; Task binds no unix sockets, nothing to fix.

Companion: Codys-Wright/nix-config#92 drops the THEBATTLESHIP #task-desktop flake follower (keeps the release AppImage).

Local checks (devenv shell, run once)

  • cargo fmt --all -- --check → 0
  • actionlint → 0; shellcheck on the changed scripts: no new findings vs origin/main (the Apple scripts' pre-existing notes/warnings are unchanged, so the commit used SKIP=shellcheck; .envrc got a shell=bash directive and is clean)
  • cargo rail change check --merge-base → change files: ok (no crate changed; no change files)
  • nix flake show --all-systems → 0; just --list OK
  • devenv-fleet fleet-pins on devenv.yaml/devenv.lock → matches pins.json (its flake.lock pass errors on a root without a rust-overlay input: a fleet-pins bug, to be fixed in devenv-fleet)
  • just css (generates the gitignored tailwind.css the apps embed, as checks.yml does) → 0, then CARGO_BUILD_WARNINGS=deny cargo clippy --workspace --all-targets → 0 (only the pre-existing "patch tao was not used" note)
  • Tests: none run (no Rust source changed).

Known, pre-existing, out of scope: pure crane builds fail to evaluate on origin/main too (stylo git-rev); apps/tests/playwright pins @playwright/test 1.58.2 while nixpkgs-dx (same rev as before) ships playwright-driver 1.59.1.

🤖 Generated with Claude Code

The dev shell moves from the flake's devShells to devenv (STA-635, plan
§6.2): devenv.nix + devenv.yaml import devenv-fleet v0.1.0's `rust`,
`dioxus`, `telemetry` and `darwin` modules, and `.envrc` loads it
(`use devenv`, then `dotenv_if_exists .env`). `devenv up` (`just dev`)
runs the server on 127.0.0.1:18080, the web app (dx serve) and Teley
with its OTLP collector.

The flake keeps packaging only: crane builds, the images and
nixosModules.task-server (+ task-email-watcher). packages.task-desktop
is gone (the release AppImage is the Linux desktop app); so are the
shells, prek.nix and cargo-rail.nix, which devenv-fleet now pins. The
flake's nixpkgs follows devenv-fleet's, and the rust toolchain comes from
devenv-fleet's toolchainFor, so the shell and the hermetic builds share
one rustc. x86_64-darwin is dropped (nixpkgs 26.11 has none).

CI: checks.yml's Lint, Tests and Wasm run every step in `devenv shell`
and assert the pinned rustc with fleet-doctor, on THEBATTLESHIP and on
hosted runners (which cache the source-built cargo-rail, dx and
wasm-bindgen as a file binary cache keyed on devenv.lock). pr.yml stays
on a plain hosted toolchain, with cargo-hakari 0.9.38 (devenv-fleet's;
regenerating changed nothing). images.yml builds a tag in its own dev
shell: devenv from here on, the flake's shells for older tags. Scripts,
the Justfile, the macOS/iOS build scripts, AGENTS.md and the docs now
enter `devenv shell` instead of `nix develop`.

Co-Authored-By: Claude Code <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants