Test failure 7m 54s
Annotations 2
error
Process completed with exit code 1.
warning
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-go@v5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
- Current runner version: 'v0.5.0'
- GITHUB_TOKEN Permissions
- Contents: read
- Metadata: read
- Packages: read
- Secret source: Actions
- Cache mode: write
- Prepare workflow directory
- Prepare all required actions
- Getting action download info
- Download action repository 'actions/checkout@v6' (SHA:d23441a48e516b6c34aea4fa41551a30e30af803)
- Download action repository 'actions/setup-go@v5' (SHA:40f1582b2485089dde7abd97c1529aa768e1baff)
- Complete job name: Test
- Checking docker version
- ##[command]/usr/bin/docker version --format '{{.Server.APIVersion}}'
- '1.56'
- Docker daemon API version: '1.56'
- ##[command]/usr/bin/docker version --format '{{.Client.APIVersion}}'
- '1.56'
- Docker client API version: '1.56'
- Clean up resources from previous jobs
- ##[command]/usr/bin/docker ps --all --quiet --no-trunc --filter "label=417814"
- ##[command]/usr/bin/docker network prune --force --filter "label=417814"
- Create local container network
- ##[command]/usr/bin/docker network create --label 417814 github_network_3d29a8d93e954b0da008e0219b4fc0d3
- af9a34c356735571c06d3c838510cf2242501afdcd0bf8c8b379594e5491880b
- Starting job container
- ##[command]/usr/bin/docker pull archlinux:latest
- latest: Pulling from library/archlinux
- 7450fb54bb4f: Pulling fs layer
- e4c7c6c5e741: Pulling fs layer
- e4c7c6c5e741: Verifying Checksum
- e4c7c6c5e741: Download complete
- 7450fb54bb4f: Verifying Checksum
- 7450fb54bb4f: Download complete
- 7450fb54bb4f: Pull complete
- e4c7c6c5e741: Pull complete
- Digest: sha256:e43f1fd80e073992c5f173efbbbf65144170bf60aeb7369940087d63eacea8f4
- Status: Downloaded newer image for archlinux:latest
- docker.io/library/archlinux:latest
- ##[command]/usr/bin/docker create --name 26cafe9022154260a92f91db63d76285_archlinuxlatest_fcdece --label 417814 --workdir /__w/ermite/ermite --network github_network_3d29a8d93e954b0da008e0219b4fc0d3 -e "HOME=/github/home" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work":"/__w" -v "/home/runner/externals":"/__e":ro -v "/home/runner/work/_temp":"/__w/_temp" -v "/home/runner/work/_actions":"/__w/_actions" -v "/opt/hostedtoolcache":"/__t" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" --entrypoint "tail" archlinux:latest "-f" "/dev/null"
- 1b888c945181acda79e38ae57f1848d56176f1bc3ea6b799c5e09dc73722b1ce
- ##[command]/usr/bin/docker start 1b888c945181acda79e38ae57f1848d56176f1bc3ea6b799c5e09dc73722b1ce
- 1b888c945181acda79e38ae57f1848d56176f1bc3ea6b799c5e09dc73722b1ce
- ##[command]/usr/bin/docker ps --all --filter id=1b888c945181acda79e38ae57f1848d56176f1bc3ea6b799c5e09dc73722b1ce --filter status=running --no-trunc --format "{{.ID}} {{.Status}}"
- 1b888c945181acda79e38ae57f1848d56176f1bc3ea6b799c5e09dc73722b1ce Up Less than a second
- ##[command]/usr/bin/docker inspect --format "{{range .Config.Env}}{{println .}}{{end}}" 1b888c945181acda79e38ae57f1848d56176f1bc3ea6b799c5e09dc73722b1ce
- HOME=/github/home
- GITHUB_ACTIONS=true
- CI=true
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- LANG=C.UTF-8
- Waiting for all services to be ready
- Run pacman -Syu --noconfirm --needed git gcc openssh nodejs
- <U+001B>[36;1mpacman -Syu --noconfirm --needed git gcc openssh nodejs<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- :: Synchronizing package databases...
- core downloading...
- extra downloading...
- :: Starting full system upgrade...
- resolving dependencies...
- looking for conflicting packages...
- Package (24) Old Version New Version Net Change Download Size
- extra/abseil-cpp 20260817.0-2 7.15 MiB 1.35 MiB
- extra/ada 4.0.0-1 0.95 MiB 0.31 MiB
- extra/c-ares 1.34.8-1 0.53 MiB 0.23 MiB
- core/db5.3 5.3.28-7 6.48 MiB 1.26 MiB
- core/dbus 1.16.2-1 1.16.2-2 0.03 MiB 0.35 MiB
- extra/gtest 1.18.0-1 1.67 MiB 0.39 MiB
- core/libedit 20260512_3.1-1 0.27 MiB 0.11 MiB
- core/libisl 0.28-1 5.90 MiB 0.94 MiB
- core/libmpc 1.4.1-1 0.19 MiB 0.09 MiB
- extra/libuv 1.52.1-2 0.64 MiB 0.26 MiB
- core/linux-api-headers 7.2-1 7.3-1 0.07 MiB 1.53 MiB
- core/perl 5.44.0-1 72.30 MiB 20.98 MiB
- extra/perl-error 0.17030-3 0.04 MiB 0.02 MiB
- extra/perl-mailtools 2.22-3 0.10 MiB 0.06 MiB
- extra/perl-timedate 2.35-1 0.15 MiB 0.06 MiB
- extra/simdjson 1:5.0.5-1 10.27 MiB 0.44 MiB
- core/systemd 262-1 262.1-1 0.03 MiB 10.68 MiB
- core/systemd-libs 262-1 262.1-1 0.01 MiB 1.44 MiB
- core/systemd-sysvcompat 262-1 262.1-1 0.00 MiB 0.01 MiB
- extra/zlib-ng 2.3.3-1 0.28 MiB 0.11 MiB
- core/gcc 16.2.1+r23+gd564253eb6c8-1 220.89 MiB 57.93 MiB
- extra/git 2.56.0-1 33.54 MiB 7.43 MiB
- extra/nodejs 26.12.0-1 64.12 MiB 17.48 MiB
- core/openssh 10.6p1-2 6.77 MiB 1.43 MiB
- Total Download Size: 124.89 MiB
- Total Installed Size: 484.66 MiB
- Net Upgrade Size: 432.37 MiB
- :: Proceed with installation? [Y/n]
- :: Retrieving packages...
- gcc-16.2.1+r23+gd564253eb6c8-1-x86_64 downloading...
- perl-5.44.0-1-x86_64 downloading...
- nodejs-26.12.0-1-x86_64 downloading...
- systemd-262.1-1-x86_64 downloading...
- git-2.56.0-1-x86_64 downloading...
- linux-api-headers-7.3-1-x86_64 downloading...
- systemd-libs-262.1-1-x86_64 downloading...
- openssh-10.6p1-2-x86_64 downloading...
- abseil-cpp-20260817.0-2-x86_64 downloading...
- db5.3-5.3.28-7-x86_64 downloading...
- libisl-0.28-1-x86_64 downloading...
- simdjson-1:5.0.5-1-x86_64 downloading...
- gtest-1.18.0-1-x86_64 downloading...
- dbus-1.16.2-2-x86_64 downloading...
- ada-4.0.0-1-x86_64 downloading...
- libuv-1.52.1-2-x86_64 downloading...
- c-ares-1.34.8-1-x86_64 downloading...
- libedit-20260512_3.1-1-x86_64 downloading...
- zlib-ng-2.3.3-1-x86_64 downloading...
- libmpc-1.4.1-1-x86_64 downloading...
- perl-timedate-2.35-1-any downloading...
- perl-mailtools-2.22-3-any downloading...
- perl-error-0.17030-3-any downloading...
- systemd-sysvcompat-262.1-1-x86_64 downloading...
- checking keyring...
- checking package integrity...
- loading package files...
- checking for file conflicts...
- :: Processing package changes...
- upgrading linux-api-headers...
- installing db5.3...
- installing perl...
- installing perl-error...
- installing perl-timedate...
- installing perl-mailtools...
- installing zlib-ng...
- upgrading systemd-libs...
- installing git...
- Optional dependencies for git
- git-zsh-completion: upstream zsh completion
- tk: gitk and git gui
- openssh: ssh transport and crypto [pending]
- man: show help with `git command --help`
- perl-libwww: git svn
- perl-term-readkey: git svn and interactive.singlekey setting
- perl-io-socket-ssl: git send-email TLS support
- perl-authen-sasl: git send-email TLS support
- perl-cgi: gitweb (web interface) support
- python: git svn & git p4
- subversion: git svn
- org.freedesktop.secrets: keyring credential helper
- libsecret: libsecret credential helper [installed]
- less: the default pager for git
- installing libisl...
- installing libmpc...
- installing gcc...
- Optional dependencies for gcc
- lib32-gcc-libs: for generating code for 32-bit ABI
- installing libedit...
- installing openssh...
- Optional dependencies for openssh
- libfido2: FIDO/U2F support
- sh: for ssh-copy-id and findssl.sh [installed]
- x11-ssh-askpass: input passphrase in X
- xorg-xauth: X11 forwarding
- installing gtest...
- Optional dependencies for gtest
- python: gmock generator
- installing abseil-cpp...
- installing ada...
- installing c-ares...
- installing libuv...
- installing simdjson...
- installing nodejs...
- Optional dependencies for nodejs
- npm: nodejs package manager
- upgrading dbus...
- upgrading systemd...
- Creating group 'git' with GID 969.
- Creating user 'git' (git daemon user) with UID 969 and GID 969.
- upgrading systemd-sysvcompat...
- :: Running post-transaction hooks...
- ( 1/12) Creating system user accounts...
- ( 2/12) Creating temporary files...
- /usr/lib/tmpfiles.d/journal-nocow.conf:26: Failed to resolve specifier: uninitialized /etc/ detected, skipping.
- All rules containing unresolvable specifiers will be skipped.
- ( 3/12) Updating journal message catalog...
- ( 4/12) Updating udev hardware database...
- ( 5/12) Applying kernel sysctl settings...
- Skipped: Current root is not booted.
- ( 6/12) Reloading system manager configuration...
- Skipped: Current root is not booted.
- ( 7/12) Reloading user manager configuration...
- Skipped: Current root is not booted.
- ( 8/12) Enqueuing marked services...
- Skipped: Current root is not booted.
- ( 9/12) Reloading device manager configuration...
- Skipped: Current root is not booted.
- (10/12) Arming ConditionNeedsUpdate...
- (11/12) Reloading system bus configuration...
- Skipped: Current root is not booted.
- (12/12) Checking for old perl modules...
- Run actions/checkout@v6
- with:
- repository: bnema/ermite
- token: ***
- ssh-strict: true
- ssh-user: git
- persist-credentials: true
- clean: true
- sparse-checkout-cone-mode: true
- fetch-depth: 1
- fetch-tags: false
- show-progress: true
- lfs: false
- submodules: false
- set-safe-directory: true
- allow-unsafe-pr-checkout: false
- env:
- GOWORK: off
- ##[command]/usr/bin/docker exec 1b888c945181acda79e38ae57f1848d56176f1bc3ea6b799c5e09dc73722b1ce sh -c "cat /etc/*release | grep ^ID"
- Syncing repository: bnema/ermite
- Getting Git version info
- Working directory is '/__w/ermite/ermite'
- [command]/usr/sbin/git version
- git version 2.56.0
- Temporarily overriding HOME='/__w/_temp/dffe4827-5fec-4efd-aa3a-a660270cc87f' before making global git config changes
- Adding repository directory to the temporary git global config as a safe directory
- [command]/usr/sbin/git config --global --add safe.directory /__w/ermite/ermite
- Deleting the contents of '/__w/ermite/ermite'
- Determining repository object format
- Initializing the repository
- [command]/usr/sbin/git init /__w/ermite/ermite
- hint: Using 'master' as the name for the initial branch. This default branch name
- hint: will change to "main" in Git 3.0. To configure the initial branch name
- hint: to use in all of your new repositories, which will suppress this warning,
- hint: call:
- hint:
- hint: git config --global init.defaultBranch <name>
- hint:
- hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
- hint: 'development'. The just-created branch can be renamed via this command:
- hint:
- hint: git branch -m <name>
- hint:
- hint: Disable this message with "git config set advice.defaultBranchName false"
- Initialized empty Git repository in /__w/ermite/ermite/.git/
- [command]/usr/sbin/git remote add origin http://ermite:7341/bnema/ermite
- Disabling automatic garbage collection
- [command]/usr/sbin/git config --local gc.auto 0
- Setting up auth
- Removing SSH command configuration
- [command]/usr/sbin/git config --local --name-only --get-regexp core\.sshCommand
- [command]/usr/sbin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
- Removing HTTP extra header
- [command]/usr/sbin/git config --local --name-only --get-regexp http\.http\:\/\/ermite\:7341\/\.extraheader
- [command]/usr/sbin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.http\:\/\/ermite\:7341\/\.extraheader' && git config --local --unset-all 'http.http://ermite:7341/.extraheader' || :"
- Removing includeIf entries pointing to credentials config files
- [command]/usr/sbin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
- [command]/usr/sbin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
- [command]/usr/sbin/git config --file /__w/_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config http.http://ermite:7341/.extraheader AUTHORIZATION: basic ***
- [command]/usr/sbin/git config --local includeIf.gitdir:/__w/ermite/ermite/.git.path /__w/_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config
- [command]/usr/sbin/git config --local includeIf.gitdir:/__w/ermite/ermite/.git/worktrees/*.path /__w/_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config
- [command]/usr/sbin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config
- [command]/usr/sbin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config
- Fetching the repository
- [command]/usr/sbin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +453499267f41ae8b3e4bd97a7445ec1c9de27425:refs/remotes/origin/main
- From http://ermite:7341/bnema/ermite
- * [new ref] 453499267f41ae8b3e4bd97a7445ec1c9de27425 -> origin/main
- [command]/usr/sbin/git branch --list --remote origin/main
- origin/main
- [command]/usr/sbin/git rev-parse refs/remotes/origin/main
- 453499267f41ae8b3e4bd97a7445ec1c9de27425
- Determining the checkout info
- [command]/usr/sbin/git sparse-checkout disable
- [command]/usr/sbin/git config --local --unset-all extensions.worktreeConfig
- Checking out the ref
- [command]/usr/sbin/git checkout --progress --force -B main refs/remotes/origin/main
- Switched to a new branch 'main'
- branch 'main' set up to track 'origin/main'.
- [command]/usr/sbin/git log -1 --format=%H
- 453499267f41ae8b3e4bd97a7445ec1c9de27425
- Run git config --global --add safe.directory "$GITHUB_WORKSPACE"
- <U+001B>[36;1mgit config --global --add safe.directory "$GITHUB_WORKSPACE"<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- Run actions/setup-go@v5
- with:
- go-version-file: go.mod
- cache: true
- check-latest: false
- env:
- GOWORK: off
- ##[command]/usr/bin/docker exec 1b888c945181acda79e38ae57f1848d56176f1bc3ea6b799c5e09dc73722b1ce sh -c "cat /etc/*release | grep ^ID"
- Setup go version spec 1.27.1
- Attempting to download 1.27.1...
- (node:340) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
- (Use `node --trace-deprecation ...` to show where the warning was created)
- matching 1.27.1...
- Acquiring 1.27.1 from https://github.com/actions/go-versions/releases/download/1.27.1-33583469715/go-1.27.1-linux-x64.tar.gz
- Extracting Go...
- [command]/usr/sbin/tar xz --warning=no-unknown-keyword --overwrite -C /__w/_temp/6130c450-7d0a-437e-95a5-7cb4f7b9042a -f /__w/_temp/b0c085cd-7195-4168-802a-038b1dabb82d
- Successfully extracted go to /__w/_temp/6130c450-7d0a-437e-95a5-7cb4f7b9042a
- Adding to the cache ...
- Successfully cached go to /__t/go/1.27.1/x64
- Added go to the path
- Successfully set up Go version 1.27.1
- [command]/__t/go/1.27.1/x64/bin/go env GOMODCACHE
- [command]/__t/go/1.27.1/x64/bin/go env GOCACHE
- /github/home/go/pkg/mod
- /github/home/.cache/go-build
- Cache Size: ~654 MB (685568766 B)
- [command]/usr/sbin/tar -xf /__w/_temp/1c950ca9-2fdf-4c44-8793-9b2f9642aa26/cache.tzst -P -C /__w/ermite/ermite --use-compress-program unzstd
- Cache restored successfully
- Cache restored from key: setup-go-Linux-x64-undefined-go-1.27.1-dcdc8e7faa10edda11b015ed33e82b95f80ca31b35aabdb55b2bc12ddb2a3368
- go version go1.27.1 linux/amd64
- go env
- AR='ar'
- CC='gcc'
- CGO_CFLAGS='-O2 -g'
- CGO_CPPFLAGS=''
- CGO_CXXFLAGS='-O2 -g'
- CGO_ENABLED='1'
- CGO_FFLAGS='-O2 -g'
- CGO_LDFLAGS='-O2 -g'
- CXX='g++'
- GCCGO='gccgo'
- GO111MODULE=''
- GOAMD64='v1'
- GOARCH='amd64'
- GOAUTH='netrc'
- GOBIN='/github/home/go/bin'
- GOCACHE='/github/home/.cache/go-build'
- GOCACHEPROG=''
- GODEBUG=''
- GOENV='/github/home/.config/go/env'
- GOEXE=''
- GOEXPERIMENT=''
- GOFIPS140='off'
- GOFLAGS=''
- GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build4084226160=/tmp/go-build -gno-record-gcc-switches'
- GOHOSTARCH='amd64'
- GOHOSTOS='linux'
- GOINSECURE=''
- GOMOD='/__w/ermite/ermite/go.mod'
- GOMODCACHE='/github/home/go/pkg/mod'
- GONOPROXY=''
- GONOSUMDB=''
- GOOS='linux'
- GOPACKAGESDRIVER=''
- GOPATH='/github/home/go'
- GOPRIVATE=''
- GOPROXY='https://proxy.golang.org,direct'
- GOROOT='/__t/go/1.27.1/x64'
- GOSUMDB='sum.golang.org'
- GOTELEMETRY='local'
- GOTELEMETRYDIR='/github/home/.config/go/telemetry'
- GOTMPDIR=''
- GOTOOLCHAIN='auto'
- GOTOOLDIR='/__t/go/1.27.1/x64/pkg/tool/linux_amd64'
- GOVCS=''
- GOVERSION='go1.27.1'
- GOWORK='off'
- PKG_CONFIG='pkg-config'
- Run git --version
- <U+001B>[36;1mgit --version<U+001B>[0m
- <U+001B>[36;1mv=$(git --version | sed -E 's/^git version ([0-9]+)\.([0-9]+).*/\1 \2/')<U+001B>[0m
- <U+001B>[36;1mset -- $v<U+001B>[0m
- <U+001B>[36;1mif [ "$1" -lt 2 ] || { [ "$1" -eq 2 ] && [ "$2" -lt 45 ]; }; then<U+001B>[0m
- <U+001B>[36;1m echo "git 2.45 or newer is required" >&2<U+001B>[0m
- <U+001B>[36;1m exit 1<U+001B>[0m
- <U+001B>[36;1mfi<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- git version 2.56.0
- Run go mod tidy
- <U+001B>[36;1mgo mod tidy<U+001B>[0m
- <U+001B>[36;1mgit diff --exit-code -- go.mod go.sum<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- Run scripts/templ-drift.sh
- <U+001B>[36;1mscripts/templ-drift.sh<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- (✓) Post-generation event received, processing... [ updates=0 needsRestart=true needsBrowserReload=true ]
- (✓) Complete [ updates=0 duration=208.212375ms ]
- Run go vet ./...
- <U+001B>[36;1mgo vet ./...<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- Run go test -race $(go list ./... | grep -vx 'bnema.dev/ermite/internal/app')
- <U+001B>[36;1mgo test -race $(go list ./... | grep -vx 'bnema.dev/ermite/internal/app')<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- ? bnema.dev/ermite/cmd/ermite [no test files]
- ? bnema.dev/ermite/gen/ermite/storage [no test files]
- ok bnema.dev/ermite/internal/adapters/ciartifacts (cached)
- ok bnema.dev/ermite/internal/adapters/cilogs (cached)
- ok bnema.dev/ermite/internal/adapters/cisummaries (cached)
- ok bnema.dev/ermite/internal/adapters/client (cached)
- ok bnema.dev/ermite/internal/adapters/ermitegit (cached)
- ok bnema.dev/ermite/internal/adapters/eventbus (cached)
- ok bnema.dev/ermite/internal/adapters/gitcli (cached)
- ok bnema.dev/ermite/internal/adapters/githttp (cached)
- ok bnema.dev/ermite/internal/adapters/githubapi (cached)
- ok bnema.dev/ermite/internal/adapters/githubraw (cached)
- ok bnema.dev/ermite/internal/adapters/gitremote (cached)
- ok bnema.dev/ermite/internal/adapters/httpserver (cached)
- ok bnema.dev/ermite/internal/adapters/kvstore (cached)
- ? bnema.dev/ermite/internal/adapters/oidchttp [no test files]
- ok bnema.dev/ermite/internal/adapters/rpc 1.095s
- ok bnema.dev/ermite/internal/adapters/secretbox (cached)
- ok bnema.dev/ermite/internal/adapters/sigverify (cached)
- ok bnema.dev/ermite/internal/adapters/sshsig (cached)
- ok bnema.dev/ermite/internal/adapters/web 37.398s
- ok bnema.dev/ermite/internal/adapters/webauthn (cached)
- ok bnema.dev/ermite/internal/boundary 1.120s
- ok bnema.dev/ermite/internal/clientlimit (cached)
- ok bnema.dev/ermite/internal/config (cached)
- ok bnema.dev/ermite/internal/domain (cached)
- ? bnema.dev/ermite/internal/ports [no test files]
- ? bnema.dev/ermite/internal/ports/mocks [no test files]
- ? bnema.dev/ermite/internal/readertest [no test files]
- ok bnema.dev/ermite/internal/usecase 19.950s
- ? bnema.dev/ermite/scripts/loadtest [no test files]
- Run go test -race ./internal/app/
- <U+001B>[36;1mgo test -race ./internal/app/<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- --- FAIL: TestWebMergeRequestSinceAfterForcePush (0.57s)
- web_mr_test.go:661:
- Error Trace: /__w/ermite/ermite/internal/app/web_mr_test.go:661
- Error: "<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><meta name=\"color-scheme\" content=\"light dark\"><title>#1 t · proj · example.test</title><meta name=\"theme-color\" media=\"(prefers-color-scheme: light)\" content=\"#ffffff\"><meta name=\"theme-color\" media=\"(prefers-color-scheme: dark)\" content=\"#0c0c0c\"><meta name=\"apple-mobile-web-app-title\" content=\"ermite\"><link rel=\"icon\" type=\"image/svg+xml\" href=\"/-/static/img/icon.afac4ac794c3.svg\"><link rel=\"apple-touch-icon\" href=\"/-/static/app/apple-touch-icon.dddb06b362c9.png\"><link rel=\"manifest\" href=\"/-/static/app/manifest.e216ef5fd926.webmanifest\"><link rel=\"preload\" href=\"/-/static/fonts/atkinson-next.18b2a1a39a2f.woff2\" as=\"font\" type=\"font/woff2\" crossorigin><link rel=\"stylesheet\" href=\"/-/static/css/ermite.f0c242b2c37a.css\"><meta name=\"htmx-config\" content='{\"history\":false,\"includeIndicatorCSS\":false,\"extensions\":\"sse, hx-live\"}'><script src=\"/-/static/js/htmx.min.e484d9171a9d.js\" defer></script><script src=\"/-/static/js/hx-live.min.adf9b90949d5.js\" defer></script><script src=\"/-/static/js/hx-sse.min.8a834680c400.js\" defer></script><script src=\"/-/static/js/store.0dc4cd15b66d.js\"></script><script src=\"/-/static/js/ermite.b1d919d5d11c.js\" defer></script><script src=\"/-/static/js/files.c19197868b87.js\" defer></script><script src=\"/-/static/js/passkey.6f3063d3e7b6.js\" defer></script><script src=\"/-/static/js/log.b8fcef6f19b7.js\" defer></script><script src=\"/-/static/js/mr.29bf51c673fd.js\" defer></script></head><body data-ref=\"feat/search\" data-sha=\"6186a66276260c5edbdfb563c9aafd71415fe173\" data-sel=\"\" data-nav=\"\" data-paths=\"/proj/paths/6186a66276260c5edbdfb563c9aafd71415fe173\" data-blob=\"/proj/blob/feat/search\"><a class=\"skip\" href=\"#main\">skip to content</a><header class=\"hdr\"><div class=\"hdr-top\"><a class=\"brand\" href=\"/\" data-g=\"h\" aria-label=\"home\" title=\"home (g h)\"><span class=\"brand-mark\" aria-hidden=\"true\"></span></a> <nav class=\"crumbs\" aria-label=\"Path\"><ol><li><a href=\"/proj\">proj</a></li><li><a href=\"/proj/merge-requests\">merge requests</a></li><li><a href=\"/proj/merge-requests/1\">#1</a></li><li><span aria-current=\"page\">since</span></li></ol></nav><div class=\"hdr-acts\"><a class=\"btn ref\" href=\"/proj/refs\" data-fire=\"refs\" aria-keyshortcuts=\"b\" title=\"switch branch or tag (b)\"><span class=\"ico i-branch\" aria-hidden=\"true\"></span> <span class=\"ref-name\">feat/search</span> <span class=\"sha\">6186a66</span></a> <button type=\"button\" class=\"btn search\" data-js aria-haspopup=\"dialog\" aria-controls=\"panel-cmd\" aria-keyshortcuts=\"Control+K :\" title=\"go to a section, ref, file or repo (ctrl k or :)\" data-fire=\"cmd\"><span class=\"ico i-search\" aria-hidden=\"true\"></span> <span class=\"search-label\">Go to…</span> <kbd aria-hidden=\"true\">ctrl k</kbd></button> <form class=\"owner\" method=\"post\" action=\"/-/logout\"><span class=\"owner-badge\" title=\"signed in as the owner\"><span class=\"ico i-user\" aria-hidden=\"true\"></span>owner</span> <button type=\"submit\" class=\"btn icon\" aria-label=\"Sign out\" title=\"sign out of this browser\"><span class=\"ico i-log-out\" aria-hidden=\"true\"></span></button></form></div></div><nav class=\"tabs\" aria-label=\"Sections\"><ul><li><a href=\"/proj\" data-key=\"s\" aria-keyshortcuts=\"s\">Summary <kbd aria-hidden=\"true\">s</kbd></a></li><li><a href=\"/proj/tree/main\" data-key=\"t\" aria-keyshortcuts=\"t\">Files <kbd aria-hidden=\"true\">t</kbd></a></li><li><a href=\"/proj/commits/main\" data-key=\"c\" aria-keyshortcuts=\"c\">Commits <kbd aria-hidden=\"true\">c</kbd></a></li><li><a href=\"/proj/refs\" data-key=\"r\" aria-keyshortcuts=\"r\">Branches & tags <kbd aria-hidden=\"true\">r</kbd></a></li><li><a href=\"/proj/merge-requests\" data-key=\"m\" aria-keyshortcuts=\"m\" aria-current=\"page\">Merge requests <span class=\"count\">1<span class=\"sr\"> open</span></span> <kbd aria-hidden=\"true\">m</kbd></a></li><li><a href=\"/proj/actions\" data-key=\"a\" aria-keyshortcuts=\"a\">Actions <kbd aria-hidden=\"true\">a</kbd></a></li></ul></nav></header><div class=\"work has-rail\"><main id=\"main\" tabindex=\"-1\"><section class=\"mr-card\"><header class=\"show mr-h\"><h1><span class=\"mute\">#1</span> t</h1><dl class=\"kv show-kv\"><dt>state</dt><dd class=\"mr-state\" data-state=\"open\">open </dd><dt>branch</dt><dd><a href=\"/proj/tree/feat/search\">feat/search</a> → <a href=\"/proj/tree/main\">main</a></dd><dt>opened</dt><dd>owner · <time datetime=\"2026-10-19T19:47:09Z\" title=\"2026-10-19 19:47 UTC\">now</time></dd><dt>updated</dt><dd><time datetime=\"2026-10-19T19:47:09Z\">now</time></dd></dl></header></section> <div id=\"mr-notice\" class=\"live-slot\" role=\"status\" data-slot></div> <nav class=\"since\" aria-label=\"Diff range\"><a href=\"/proj/merge-requests/1\">all changes <span class=\"mute\">vs main</span></a> <a href=\"/proj/merge-requests/1/since\" aria-current=\"page\">since your last read <span class=\"mute\">2e5eae3 → 6186a66</span></a></nav> <p class=\"notice\">changes since 2e5eae3, the head you last read.</p> <div class=\"diff-tools mr-bar\" role=\"group\" aria-label=\"Diff view and merge\"><span class=\"dim\">2 files · <span class=\"plus\">+1</span> <span class=\"minus\">-3</span></span><details class=\"menu vmenu\"><summary class=\"btn\" aria-label=\"Diff view\"><span hx-live=\"this.textContent = q('#diffs').attr['data-diff'] === 'split' ? 'Split' : 'Unified'\">Unified</span></summary><div class=\"menu-pop\" role=\"group\" aria-label=\"Diff view\"><a href=\"/proj/merge-requests/1/since?view=unified\" class=\"btn vbtn\" data-view=\"unified\" aria-keyshortcuts=\"u\" aria-current=\"true\" data-fire=\"unified\" :aria-current=\"q('#diffs').attr['data-diff'] === this.dataset.view ? 'true' : false\">Unified<kbd aria-hidden=\"true\">u</kbd></a><a href=\"/proj/merge-requests/1/since?view=split\" class=\"btn vbtn\" data-view=\"split\" aria-keyshortcuts=\"d\" data-fire=\"split\" :aria-current=\"q('#diffs').attr['data-diff'] === this.dataset.view ? 'true' : false\">Split<kbd aria-hidden=\"true\">d</kbd></a><button type=\"button\" aria-keyshortcuts=\"x\" data-js data-fire=\"collapse\" class=\"btn\"><span hx-live=\"this.textContent = q('[data-file][open]').count || !q('[data-file]').count ? 'Collapse all' : 'Expand all'\">Collapse all</span><kbd aria-hidden=\"true\">x</kbd></button></div></details><span class=\"grow\"></span><a class=\"ck-sum mr-ck\" id=\"mr-ck\" href=\"#mr-checks\" title=\"\"><span class=\"mute\">no checks</span></a><details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">Merge <kbd aria-hidden=\"true\">M</kbd></summary><div class=\"menu-pop\" role=\"group\" aria-label=\"Merge\"><dl class=\"kv\"><dt>head</dt><dd>6186a66</dd><dt>into</dt><dd>main</dd></dl><div id=\"mr-mergeability\" class=\"live-slot\" role=\"status\" data-slot><span data-mergeability data-state=\"up_to_date\" data-ff-ok=\"true\" data-merge-ok=\"true\" data-ff-reason=\"\" data-merge-reason=\"\"><span class=\"badge\" data-state=\"up_to_date\">Ready to merge</span> </span> </div> <form class=\"d-acts\" method=\"post\" action=\"/proj/merge-requests/1/merge\"><input type=\"hidden\" name=\"head_id\" value=\"6186a66276260c5edbdfb563c9aafd71415fe173\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> <label><input type=\"radio\" name=\"mode\" value=\"fast-forward\" checked title=\"\" :disabled=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffOk !== true : q('[data-mergeability]').data.mergeOk !== true\" :title=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffReason : q('[data-mergeability]').data.mergeReason\"> fast-forward <kbd aria-hidden=\"true\">1</kbd></label><label><input type=\"radio\" name=\"mode\" value=\"squash\" title=\"\" :disabled=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffOk !== true : q('[data-mergeability]').data.mergeOk !== true\" :title=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffReason : q('[data-mergeability]').data.mergeReason\"> squash (one signed commit) <kbd aria-hidden=\"true\">2</kbd></label><label><input type=\"radio\" name=\"mode\" value=\"merge\" title=\"\" :disabled=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffOk !== true : q('[data-mergeability]').data.mergeOk !== true\" :title=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffReason : q('[data-mergeability]').data.mergeReason\"> merge commit (signed) <kbd aria-hidden=\"true\">3</kbd></label></fieldset><p class=\"d-note\" id=\"mr-signing\">squash and merge commits are signed with ermite's own key (generated on first start). fingerprint <code>SHA256:oHOl6Rp7DDKu3RTcoHhtXF+TrsG0KhJWRePxi0x+0SI</code> <code>ermite signing-key show</code> prints it.</p><label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete feat/search after the merge <kbd aria-hidden=\"true\">D</kbd></label><div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default title=\"\" :disabled=\"!this.form.querySelector('input[name=mode]:checked:not(:disabled)')\" :title=\"(this.form.querySelector('input[name=mode]:checked') || {}).title || ''\">Merge into main</button></div></form></div></details> <details class=\"menu omenu\"><summary class=\"btn icon\" aria-label=\"More actions\" title=\"more actions\">⋯</summary><div class=\"menu-pop\" role=\"group\" aria-label=\"More actions\"><form method=\"post\" action=\"/proj/merge-requests/1/read\"><input type=\"hidden\" name=\"head_id\" value=\"6186a66276260c5edbdfb563c9aafd71415fe173\"> <button type=\"submit\" title=\"the next visit can show only what changed after this head\" class=\"btn\" aria-keyshortcuts=\"Shift+R\" data-read>Mark read <kbd aria-hidden=\"true\">R</kbd></button></form><form method=\"post\" action=\"/proj/merge-requests/1/close\"><button type=\"submit\" title=\"close without merging; the branch is kept\" class=\"btn danger\">Close</button></form><details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary><div class=\"clone\" id=\"cli-merge\"><div class=\"clone-line\"><span class=\"mute\" aria-hidden=\"true\">$ </span><code>ermite mr merge proj 1 --head 6186a66276260c5edbdfb563c9aafd71415fe173</code> <button type=\"button\" class=\"btn copy\" data-js data-label=\"Copy\" aria-label=\"copy: ermite mr merge proj 1 --head 6186a66276260c5edbdfb563c9aafd71415fe173\" hx-on:click=\"ermite.copy(this)\">Copy</button></div><div class=\"clone-line\"><span class=\"mute\" aria-hidden=\"true\">$ </span><code>ermite mr merge proj 1 --head 6186a66276260c5edbdfb563c9aafd71415fe173 --mode squash</code> <button type=\"button\" class=\"btn copy\" data-js data-label=\"Copy\" aria-label=\"copy: ermite mr merge proj 1 --head 6186a66276260c5edbdfb563c9aafd71415fe173 --mode squash\" hx-on:click=\"ermite.copy(this)\">Copy</button></div><div class=\"clone-line\"><span class=\"mute\" aria-hidden=\"true\">$ </span><code>ermite mr merge proj 1 --head 6186a66276260c5edbdfb563c9aafd71415fe173 --mode merge</code> <button type=\"button\" class=\"btn copy\" data-js data-label=\"Copy\" aria-label=\"copy: ermite mr merge proj 1 --head 6186a66276260c5edbdfb563c9aafd71415fe173 --mode merge\" hx-on:click=\"ermite.copy(this)\">Copy</button></div></div></details></div></details></div> <div id=\"diffs\" data-mr data-diff=\"unified\" hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"><details class=\"dfile lnw-2\" id=\"f1\" data-file=\"other.txt\" open><summary><span class=\"st\">A</span> <span class=\"p\">other.txt</span> <span class=\"plus\">+1</span> <span class=\"minus\">-0</span> </summary> <div class=\"dscroll\"><table class=\"dt uni\" aria-label=\"other.txt, unified\"><tbody><tr class=\"hunk\"><td colspan=\"4\">@@ -0,0 +1,1 @@</td></tr><tr class=\"add\"><td class=\"ln\"></td><td class=\"ln\">1</td><td class=\"m\">+</td><td class=\"tx chroma\">o</td></tr></tbody> </table><table class=\"dt spl\" aria-label=\"other.txt, split\"><colgroup><col class=\"c-ln\"><col class=\"c-m\"><col><col class=\"c-ln\"><col class=\"c-m\"><col></colgroup> <tbody><tr class=\"hunk\"><td colspan=\"6\">@@ -0,0 +1,1 @@</td></tr><tr><td class=\"ln none\"></td><td class=\"m none\"></td><td class=\"tx none\"></td><td class=\"ln add\">1</td><td class=\"m add\">+</td><td class=\"tx chroma add\">o</td></tr></tbody> </table></div></details><details class=\"dfile lnw-2\" id=\"f2\" data-file=\"search.go\" open><summary><span class=\"st\">D</span> <span class=\"p\">search.go</span> <span class=\"plus\">+0</span> <span class=\"minus\">-3</span> </summary> <div class=\"dscroll\"><table class=\"dt uni\" aria-label=\"search.go, unified\"><tbody><tr class=\"hunk\"><td colspan=\"4\">@@ -1,3 +0,0 @@</td></tr><tr class=\"del\"><td class=\"ln\">1</td><td class=\"ln\"></td><td class=\"m\">-</td><td class=\"tx chroma\"><span class=\"kn\">package</span> search</td></tr><tr class=\"del\"><td class=\"ln\">2</td><td class=\"ln\"></td><td class=\"m\">-</td><td class=\"tx chroma\"></td></tr><tr class=\"del\"><td class=\"ln\">3</td><td class=\"ln\"></td><td class=\"m\">-</td><td class=\"tx chroma\"><span class=\"kd\">func</span> Find() {}</td></tr></tbody> </table><table class=\"dt spl\" aria-label=\"search.go, split\"><colgroup><col class=\"c-ln\"><col class=\"c-m\"><col><col class=\"c-ln\"><col class=\"c-m\"><col></colgroup> <tbody><tr class=\"hunk\"><td colspan=\"6\">@@ -1,3 +0,0 @@</td></tr><tr><td class=\"ln del\">1</td><td class=\"m del\">-</td><td class=\"tx chroma del\"><span class=\"kn\">package</span> search</td><td class=\"ln none\"></td><td class=\"m none\"></td><td class=\"tx none\"></td></tr><tr><td class=\"ln del\">2</td><td class=\"m del\">-</td><td class=\"tx chroma del\"></td><td class=\"ln none\"></td><td class=\"m none\"></td><td class=\"tx none\"></td></tr><tr><td class=\"ln del\">3</td><td class=\"m del\">-</td><td class=\"tx chroma del\"><span class=\"kd\">func</span> Find() {}</td><td class=\"ln none\"></td><td class=\"m none\"></td><td class=\"tx none\"></td></tr></tbody> </table></div></details></div><h2 class=\"rule-h\" id=\"comments\"><span>Comments</span><span class=\"count\">0 open / 0</span></h2> <p class=\"dim\">no comments yet.</p> </main><aside class=\"rail\" aria-label=\"Context\"><section aria-labelledby=\"r-files\" class=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">2</span><kbd aria-hidden=\"true\">g f</kbd> <button type=\"button\" class=\"btn icon fold\" data-js aria-expanded=\"true\" title=\"fold the list of files\" hx-on:click=\"ermiteMR.foldFiles()\"><span class=\"ico i-chevron\" aria-hidden=\"true\"></span><span class=\"sr\">fold the list of files</span></button></h2><ol class=\"files\" aria-label=\"Changed files\"><li><a href=\"#f1\" title=\"other.txt\" hx-on:click=\"(window.ermiteMR?.openFile || ermite.openFile)(this.hash.slice(1))\"><span class=\"st\" data-st=\"A\" title=\"added\">A</span> <span class=\"nm\"><span class=\"p\">other.txt</span> <span class=\"d\"><bdi></bdi></span></span> <span class=\"n\"><span class=\"plus\">+1</span> <span class=\"minus\">-0</span></span></a></li><li><a href=\"#f2\" title=\"search.go\" hx-on:click=\"(window.ermiteMR?.openFile || ermite.openFile)(this.hash.slice(1))\"><span class=\"st\" data-st=\"D\" title=\"deleted\">D</span> <span class=\"nm\"><span class=\"p\">search.go</span> <span class=\"d\"><bdi></bdi></span></span> <span class=\"n\"><span class=\"plus\">+0</span> <span class=\"minus\">-3</span></span></a></li></ol></section><section aria-labelledby=\"r-checks\" id=\"mr-checks\"><h2 id=\"r-checks\">Checks <span class=\"count\">0</span></h2><p class=\"dim\">no checks</p><p class=\"rule-note\"><span class=\"sr\">note: </span>no check on this commit: nothing blocks the merge.</p></section><section aria-labelledby=\"r-commits\"><h2 id=\"r-commits\">Commits <span class=\"count\">1</span></h2><ul class=\"pcommits\"><li><a href=\"/proj/commit/6186a66276260c5edbdfb563c9aafd71415fe173\">6186a66</a> <span class=\"s\">add other.txt</span> <span class=\"mute\">T · <time datetime=\"2026-10-19T19:47:09Z\">now</time> </span></li></ul></section><section aria-labelledby=\"r-settings\"><h2 id=\"r-settings\">Settings</h2><dl class=\"kv\"><dt>modes</dt><dd>fast-forward, squash, merge commit</dd><dt>checks</dt><dd>failing ones block the merge</dd></dl></section></aside></div><footer class=\"foot\"><span>ermite devel</span> <a href=\"http://example.test/ermite\" rel=\"noopener\" title=\"source of this version (AGPL-3.0-or-later)\">source</a> <button type=\"button\" class=\"foot-keys\" data-js data-fire=\"help\" aria-haspopup=\"dialog\" aria-controls=\"panel-help\" aria-keyshortcuts=\"?\"><kbd aria-hidden=\"true\">?</kbd> keyboard shortcuts</button></footer><div class=\"hint\" role=\"status\" aria-live=\"polite\"><span class=\"hint-nav\" :text=\"document.body.dataset.nav || ''\"></span> <span class=\"hint-sel\" :text=\"document.body.dataset.sel ? document.body.dataset.sel + ' · y permalink' : ''\"></span> <span class=\"hint-flash\" :text=\"document.body.dataset.flash || ''\"></span><span class=\"hint-live\" data-state=\"connecting\" hx-sse:connect=\"/-/events?topic=repo%3Aproj&view=mr&n=1&ref=feat%2Fsearch&head=6186a66276260c5edbdfb563c9aafd71415fe173&target=main\" hx-swap=\"none\" :text=\"data.state === 'offline' ? 'live updates paused' : ''\" hx-on=\"htmx:sse:after:connection -> ermiteLive.back();\n htmx:sse:close, htmx:sse:error -> ermiteLive.lost();\n htmx:sse:error -> ermiteLive.error(event.detail.status);\n htmx:sse:before:connection -> ermiteLive.gate(event);\n home-list, repo-last-push, refs-list, commits-head, mr-notice, mr-mergeability, ci-run, ci-job, inbox -> ermiteLive.swap(event.detail.data);\n gap -> ermiteLive.reload()\"></span></div><dialog id=\"panel-help\" class=\"panel modal\" aria-label=\"Keyboard shortcuts\" hx-on:keydown=\"event.key === 'Escape' && (event.preventDefault(), this.close())\" hx-on:click=\"event.target === this && this.close()\"><div class=\"panel-head\"><h2>Keyboard shortcuts</h2><button type=\"button\" class=\"panel-x\" aria-label=\"Close\" hx-on:click=\"closest('dialog').close()\"><kbd>esc</kbd> close</button></div><div class=\"keys-pref\"><label><input type=\"checkbox\" id=\"keys-off\" aria-describedby=\"keys-note\" hx-on:change=\"ermite.setKeysOff(this.checked)\"> Turn off single-key shortcuts</label><p id=\"keys-note\" class=\"dim\">Single-key shortcuts are on. ctrl k and esc work whatever this says.</p></div><dl class=\"keys\"><div><dt><kbd>ctrl k</kbd> <kbd>:</kbd></dt><dd>go to a section, branch, tag, file or repository</dd></div><div><dt><kbd>?</kbd></dt><dd>this list</dd></div><div><dt><kbd>j</kbd> <kbd>k</kbd></dt><dd>move the row cursor down / up</dd></div><div><dt><kbd>enter</kbd></dt><dd>open the row under the cursor; on Files, a directory opens or closes in place</dd></div><div><dt><kbd>↑</kbd> <kbd>↓</kbd> <kbd>←</kbd> <kbd>→</kbd> <kbd>home</kbd> <kbd>end</kbd></dt><dd>in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file</dd></div><div><dt><kbd>l</kbd> <kbd>h</kbd></dt><dd>on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls</dd></div><div><dt><kbd>g g</kbd> <kbd>G</kbd></dt><dd>first / last row</dd></div><div><dt><kbd>/</kbd></dt><dd>filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)</dd></div><div><dt><kbd>b</kbd></dt><dd>switch branch or tag</dd></div><div><dt><kbd>s</kbd> <kbd>t</kbd> <kbd>c</kbd> <kbd>r</kbd> <kbd>m</kbd> <kbd>i</kbd></dt><dd>tabs: summary, files, commits, branches & tags, merge requests, issues</dd></div><div><dt><kbd>g h</kbd></dt><dd>home</dd></div><div><dt><kbd>w</kbd></dt><dd>wide mode: use the whole width of the screen, or not (remembered)</dd></div><div><dt><kbd>y</kbd></dt><dd>copy a permalink pinned to the commit</dd></div><div><dt><kbd>d</kbd> <kbd>u</kbd> <kbd>x</kbd></dt><dd>diff: split / unified / collapse or expand all</dd></div><div><dt><kbd>e</kbd> <kbd>E</kbd></dt><dd>diff: the whole file in view / every file, with the lines the hunks hide</dd></div><div><dt><kbd>n</kbd></dt><dd>merge request: next note in the diff</dd></div><div><dt><kbd>g f</kbd></dt><dd>merge request: the list of files (j k move, enter opens, esc back)</dd></div><div><dt><kbd>M</kbd></dt><dd>merge request: the merge menu; there 1–3 pick the mode, D deletes the branch, enter merges</dd></div><div><dt><kbd>R</kbd></dt><dd>merge request: mark the head read</dd></div><div><dt><kbd>esc</kbd></dt><dd>close a dialog, leave a field</dd></div></dl></dialog><dialog id=\"panel-refs\" class=\"panel modal\" aria-label=\"Switch ref\" hx-on:keydown=\"event.key === 'Escape' && (event.preventDefault(), this.close())\" hx-on:click=\"event.target === this && this.close()\"><div class=\"panel-head\"><label for=\"refs-filter\" class=\"sr\">filter branches and tags</label> <input id=\"refs-filter\" type=\"search\" placeholder=\"Switch branch or tag…\" autocomplete=\"off\" data-pick=\"#panel-refs li\" hx-on:input=\"ermite.filter(this)\"> <button type=\"button\" class=\"panel-x\" aria-label=\"Close\" hx-on:click=\"closest('dialog').close()\"><kbd>esc</kbd></button></div><div class=\"panel-cols\" data-picklist><section aria-label=\"Branches\"><h2>Branches <span class=\"count\">2</span></h2><ul><li><a href=\"/proj/tree/feat/search\" aria-current=\"true\"><span class=\"mark\" aria-hidden=\"true\">●</span>feat/search</a></li><li><a href=\"/proj/tree/main\"><span class=\"mark\" aria-hidden=\"true\"> </span>main</a></li></ul></section><section aria-label=\"Tags\"><h2>Tags <span class=\"count\">0</span></h2><ul></ul></section></div></dialog><dialog id=\"panel-cmd\" class=\"panel modal\" aria-label=\"Go to\" hx-on:close=\"ermiteFinder.paletteClose()\" hx-on:keydown=\"event.key === 'Escape' && (event.preventDefault(), this.close())\" hx-on:click=\"event.target === this && this.close()\"><div class=\"panel-head\"><label for=\"cmd-q\" class=\"sr\">go to</label> <input id=\"cmd-q\" type=\"search\" placeholder=\"Go to a section, branch, tag, file or repository…\" autocomplete=\"off\" spellcheck=\"false\" role=\"combobox\" aria-autocomplete=\"list\" aria-expanded=\"true\" aria-controls=\"cmd-list\" aria-activedescendant=\"cmd-o0\" hx-on:input=\"ermite.cmdFilter(this); ermiteFinder.palette(this)\" hx-on:keydown=\"ermite.cmdKey(event)\"> <button type=\"button\" class=\"panel-x\" aria-label=\"Close\" hx-on:click=\"closest('dialog').close()\"><kbd>esc</kbd></button></div><ul id=\"cmd-list\" class=\"cmd-list\" role=\"listbox\" aria-label=\"Targets\"><li id=\"cmd-o0\" role=\"option\" aria-selected=\"true\" data-k=\"go home\" data-cursor><a href=\"/\" tabindex=\"-1\"><span class=\"lbl\">home</span><span class=\"k\">go</span></a></li><li id=\"cmd-o1\" role=\"option\" aria-selected=\"false\" data-k=\"section summary\"><a href=\"/proj\" tabindex=\"-1\"><span class=\"lbl\">summary</span><span class=\"k\">section</span></a></li><li id=\"cmd-o2\" role=\"option\" aria-selected=\"false\" data-k=\"section files\"><a href=\"/proj/tree/main\" tabindex=\"-1\"><span class=\"lbl\">files</span><span class=\"k\">section</span></a></li><li id=\"cmd-o3\" role=\"option\" aria-selected=\"false\" data-k=\"section commits\"><a href=\"/proj/commits/main\" tabindex=\"-1\"><span class=\"lbl\">commits</span><span class=\"k\">section</span></a></li><li id=\"cmd-o4\" role=\"option\" aria-selected=\"false\" data-k=\"section branches & tags\"><a href=\"/proj/refs\" tabindex=\"-1\"><span class=\"lbl\">branches & tags</span><span class=\"k\">section</span></a></li><li id=\"cmd-o5\" role=\"option\" aria-selected=\"false\" data-k=\"section merge requests\"><a href=\"/proj/merge-requests\" tabindex=\"-1\"><span class=\"lbl\">merge requests</span><span class=\"k\">section</span></a></li><li id=\"cmd-o6\" role=\"option\" aria-selected=\"false\" data-k=\"section actions\"><a href=\"/proj/actions\" tabindex=\"-1\"><span class=\"lbl\">actions</span><span class=\"k\">section</span></a></li><li id=\"cmd-o7\" role=\"option\" aria-selected=\"false\" data-k=\"branch feat/search\"><a href=\"/proj/tree/feat/search\" tabindex=\"-1\"><span class=\"lbl\">feat/search</span><span class=\"k\">branch</span></a></li><li id=\"cmd-o8\" role=\"option\" aria-selected=\"false\" data-k=\"branch main\"><a href=\"/proj/tree/main\" tabindex=\"-1\"><span class=\"lbl\">main</span><span class=\"k\">branch</span></a></li><li id=\"cmd-o9\" role=\"option\" aria-selected=\"false\" data-k=\"action turn single-key shortcuts on off keyboard\"><a href=\"#\" data-fire=\"keys\" tabindex=\"-1\"><span class=\"lbl\">turn single-key shortcuts off</span><span class=\"k\">action</span></a></li></ul><p class=\"panel-foot\"><span><kbd>↑</kbd><kbd>↓</kbd> move</span><span><kbd>enter</kbd> open</span><span><kbd>esc</kbd> close</span></p></dialog><div id=\"keys\" hidden hx-on=\"k-j from:body -> ermite.move(1);\n k-k from:body -> ermite.move(-1);\n k-top from:body -> ermite.edge(false);\n k-bottom from:body -> ermite.edge(true);\n k-open from:body -> ermite.open();\n k-right from:body -> ermite.rail(true);\n k-left from:body -> ermite.rail(false);\n k-esc from:body -> ermite.closeDialogs();\n k-help from:body -> ermite.dialog('panel-help');\n k-refs from:body -> ermite.dialog('panel-refs', 'refs-filter');\n k-cmd from:body -> ermite.dialog('panel-cmd', 'cmd-q'); ermiteFinder.load();\n k-filter from:body -> ermite.focusFilter();\n k-gh from:body -> ermite.go('.brand');\n k-s from:body -> ermite.tab('s');\n k-t from:body -> ermite.tab('t');\n k-c from:body -> ermite.tab('c');\n k-r from:body -> ermite.tab('r');\n k-m from:body -> ermite.tab('m');\n k-i from:body -> ermite.tab('i');\n k-next from:body -> ermite.nextNote();\n k-split from:body -> ermite.layout('split');\n k-unified from:body -> ermite.layout('unified');\n k-collapse from:body -> ermite.collapse();\n k-wide from:body -> window.ermiteWide.toggle();\n k-expand from:body -> ermite.expandFile();\n k-expandAll from:body -> ermite.expandAll();\n k-permalink from:body -> ermite.permalink();\n k-merge from:body -> window.ermiteMR?.openMerge();\n k-read from:body -> window.ermiteMR?.markRead();\n k-gf from:body -> window.ermiteMR?.focusFiles();\n k-keys from:body -> ermite.toggleKeys()\"></div></body></html>" does not contain "is gone, the branch was rewritten"
- Test: TestWebMergeRequestSinceAfterForcePush
- FAIL
- FAIL bnema.dev/ermite/internal/app 330.179s
- FAIL
- Process completed with exit code 1.
- Post job cleanup.
- ##[command]/usr/bin/docker exec 1b888c945181acda79e38ae57f1848d56176f1bc3ea6b799c5e09dc73722b1ce sh -c "cat /etc/*release | grep ^ID"
- [command]/usr/sbin/git version
- git version 2.56.0
- Copying '/github/home/.gitconfig' to '/__w/_temp/6eb3d91c-9142-4572-b6e1-97dc71ccc1c0/.gitconfig'
- Temporarily overriding HOME='/__w/_temp/6eb3d91c-9142-4572-b6e1-97dc71ccc1c0' before making global git config changes
- Adding repository directory to the temporary git global config as a safe directory
- [command]/usr/sbin/git config --global --add safe.directory /__w/ermite/ermite
- Removing SSH command configuration
- [command]/usr/sbin/git config --local --name-only --get-regexp core\.sshCommand
- [command]/usr/sbin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
- Removing HTTP extra header
- [command]/usr/sbin/git config --local --name-only --get-regexp http\.http\:\/\/ermite\:7341\/\.extraheader
- [command]/usr/sbin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.http\:\/\/ermite\:7341\/\.extraheader' && git config --local --unset-all 'http.http://ermite:7341/.extraheader' || :"
- Removing includeIf entries pointing to credentials config files
- [command]/usr/sbin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
- includeif.gitdir:/__w/ermite/ermite/.git.path
- includeif.gitdir:/__w/ermite/ermite/.git/worktrees/*.path
- includeif.gitdir:/github/workspace/.git.path
- includeif.gitdir:/github/workspace/.git/worktrees/*.path
- [command]/usr/sbin/git config --local --get-all includeif.gitdir:/__w/ermite/ermite/.git.path
- /__w/_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config
- [command]/usr/sbin/git config --local --unset includeif.gitdir:/__w/ermite/ermite/.git.path /__w/_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config
- [command]/usr/sbin/git config --local --get-all includeif.gitdir:/__w/ermite/ermite/.git/worktrees/*.path
- /__w/_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config
- [command]/usr/sbin/git config --local --unset includeif.gitdir:/__w/ermite/ermite/.git/worktrees/*.path /__w/_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config
- [command]/usr/sbin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path
- /github/runner_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config
- [command]/usr/sbin/git config --local --unset includeif.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config
- [command]/usr/sbin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path
- /github/runner_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config
- [command]/usr/sbin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config
- [command]/usr/sbin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
- Removing credentials config '/__w/_temp/git-credentials-12a31e66-b742-4d37-b5fa-168d1827e1a3.config'
- Stop and remove container: 26cafe9022154260a92f91db63d76285_archlinuxlatest_fcdece
- ##[command]/usr/bin/docker rm --force 1b888c945181acda79e38ae57f1848d56176f1bc3ea6b799c5e09dc73722b1ce
- 1b888c945181acda79e38ae57f1848d56176f1bc3ea6b799c5e09dc73722b1ce
- Remove container network: github_network_3d29a8d93e954b0da008e0219b4fc0d3
- ##[command]/usr/bin/docker network rm github_network_3d29a8d93e954b0da008e0219b4fc0d3
- github_network_3d29a8d93e954b0da008e0219b4fc0d3
- Cleaning up orphan processes
- ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-go@v5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/