Skip to content

chore: sync upstream devenv main 72e18a7a (RIG-5030) - #11

Merged
mattwilkinsonn merged 10 commits into
rigel-releasefrom
upstream-woodpecker/rig-5030-sync-upstream-72e18a7a
Oct 15, 2026
Merged

mattwilkinsonn merged 10 commits into
rigel-releasefrom
upstream-woodpecker/rig-5030-sync-upstream-72e18a7a

Conversation

@rigel-mintaka

@rigel-mintaka rigel-mintaka commented Oct 15, 2026 •

Copy link
Copy Markdown

Why

This is the first upstream sync for the devenv fork after the cutover (RIG-5030). main now mirrors cachix/devenv main (reset in RIG-5367; the old main is kept as tag pre-mirror-main).

What

A two-parent merge commit with no conflicts:

  • Parent 1: fork main 72e18a7a, which is in upstream cachix/devenv main.
  • Parent 2: rigel-release 4b04197b.

It brings 9 upstream commits into rigel-release. No file was hand-edited.

Verification

  • jj log shows no conflicts on the merge.
  • The merged tree differs from upstream main only by the Rigel patches already on rigel-release (16 files).
  • CI, the required check on rigel-release, runs on this head.

Land it with fork-sync-land FORK=devenv PR=11 after approval, as a merge commit. Do not squash.

Upstream moved again after this mirror point (fork main is 7 behind 03582fac). The mirror cron fast-forwards it on its next green run; the next sync PR picks those commits up.

Refs RIG-5030

RafaelKr and others added 10 commits October 7, 2026 16:04
…x#3250)

* fix(mailpit): do not allocate a port for a unix socket address

services.mailpit derives its port by splitting the listen address on ":"
and taking the last field. A unix socket is documented as
"unix:<path>:<permissions>", so that field is the permissions, and devenv
asks the port allocator for 660:

    error: Could not find available port starting from 660 after 100 attempts

Ports below 1024 are privileged, so every one of the 100 attempts is
rejected. parseHost compounds it: it returns "unix", and the process
would be started with "--listen unix:<allocated port>".

A unix socket address has no port to allocate. It is now detected and
passed to mailpit unchanged, and the ports are declared only for a TCP
address, since a port that is never declared is one devenv never allocates.

* Auto generate docs options data

* Auto generate missing individual markdowns

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* fix Zig version input source

* fix Zig version inputs with ZLS enabled

* docs: regenerate Zig documentation after rebase
* fix(tasks): start never-started process dependencies

* test(processes): cover API start of process prerequisites

* test(processes): make attach assertions portable and current

Parse process names and phases as fields instead of relying on a nonportable word-boundary regex. Synchronize interactive attach with a fresh request marker rather than a startup line that readiness logs can push out of the visible backlog.

AI-assisted implementation: Codex.

* fix(processes): release stopped controller ownership before restart

Join the retired job controller and release custom spawners before publishing Stopped. Cover retained job handles and repeated concurrent process starts and stops.

AI-assisted implementation: Codex.

* test(services): wait for allocated debug server port

Use the resolved port when the default debug server port is occupied. Verified with port 1949 bound and the service listening on port 1950.

AI-assisted implementation: Codex.

* test(tasks): cover concurrent starts through a shared process prerequisite

Gate shared prerequisite readiness to verify prompt replies, one launch, and dependent ordering. Run this regression and the start/stop stress test explicitly on Linux and macOS CI with retries disabled.

AI-assisted implementation: Codex.
* feat(tui): add tui.emoji setting for emoji-free indicators

The persistent shell status line shows `👁 devenv watching N files`, and
`⏸` while paused. Users who dislike or cannot render emoji had to hide
the status line to get rid of them, which also removed the watch status.

Add the `tui.emoji` user setting. It defaults to `true`, which keeps the
existing output. With `tui.emoji: false`, the eye becomes `◎` and the
pause symbol becomes `‖`. Both occupy one terminal column, so the label
lines up with the checkmark, cross, and spinner states.

Glyph selection lives in `devenv_shell::indicators`, so the renderer asks
for an indicator instead of checking configuration. The TUI's activity
views contain no emoji, so only the shell status line changes.

* feat(tui): use status dots for non-emoji indicators

Replace the non-emoji watching and paused glyphs with the status dots
that devenv already uses for process states: a fisheye while watching
and an idle ring while paused.
…ix#3256)

* fix(tasks): wait for cancellation cleanup before scheduler exit

Allow task futures to finish their cancellation and process-scope cleanup before the scheduler returns. Add regression coverage for nested commands and graceful joining.

Fixes cachix#3251.

AI-assisted implementation: Codex.

* fix(tasks): cancel status probes before draining shutdown

Run status probes through the process-scope executor and preserve cache miss behavior for nonzero and signal exits. Add nested probe cancellation and status exit regressions.

AI-assisted implementation: Codex.
* fix(elixir): expose the matching Erlang runtime

Include the selected Elixir package runtime so erl, erlc and escript use the same OTP. Add an explicit override for custom packages and integration coverage for default and alternate OTP runtimes.

Fixes cachix#3206

AI-assisted-by: Codex

* Auto generate docs options data

* Auto generate missing individual markdowns

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
…test (cachix#3224)

Same class as cachix#3222: user functions shadowing external tools must not
intercept the fish hook.
Refs RIG-5030

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@linear-code

linear-code Bot commented Oct 15, 2026

Copy link
Copy Markdown

RIG-5030

@rigel-mintaka rigel-mintaka changed the title fix(mailpit): do not allocate a port for a unix socket address (#3250) chore: sync upstream devenv main 72e18a7a (RIG-5030) Oct 15, 2026
@github-actions

Copy link
Copy Markdown

🔍 Suggested Reviewers

Based on git blame analysis of the changed lines, the following contributors have significant experience with the modified code:

Please consider reviewing this PR as you have authored significant portions of the code being modified. Your expertise would be valuable! 🙏

This comment was automatically generated by git-blame-auto-reviewer

Last updated: 2026-10-15T05:11:31.148Z

@rigel-mintaka
rigel-mintaka marked this pull request as ready for review October 15, 2026 05:15
@mattwilkinsonn
mattwilkinsonn merged commit a4fb964 into rigel-release Oct 15, 2026
5 checks passed
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.

6 participants