Skip to content

Release v2.1.1

Choose a tag to compare

@github-actions github-actions released this 02 Jun 18:57
v2.1.1
4bd479a

Since v2.1.0 (2026-05-27)

A small performance and build-targets release.

Performance

  • Skip port read-back on explicit ports (#67) — when a challenge launches with explicit CMGR_PORTS, the host ports are already reserved and bound before ContainerCreate, so the post-start ContainerInspect/backoff loop could only re-read values cmgr already knows. That loop is now gated on portLow == 0 and skipped on the explicit-port path, removing the inspect round-trips and backoff sleeps from the hot launch path while networking settles. Docker-assigned ephemeral ports still read back as before, and the rebuild flow (which clears instance.Ports before restarting) is correctly detected as "not yet known" so it continues to read the bound port back.
  • Cache Docker OSType once at init (#67) — the daemon's OSType (used only to decide whether to apply the Linux seccomp profile) is immutable for the daemon's lifetime. It's now fetched once in initDocker instead of via a heavy Info call on every build, launch, and solve.

Hardening

  • Container ports with no reverse-port-map entry are now logged and skipped during read-back instead of being written under an empty key, which previously could drop the real mapping or clobber other unmapped ports (#67).

Build & CI

  • Dropped the Intel Mac (darwin_amd64) release target (99fc129) — published binaries now cover linux_amd64 and darwin_arm64 (Apple Silicon). Intel Mac and Linux ARM builds are no longer published; build from source for those platforms.

Testing

  • Added unit coverage for the explicit-port skip logic and the unmapped-port edge case (cmgr/database_operations_test.go, +158 lines).

Documentation

  • README install note updated to reflect the published platform targets and source-build guidance for unsupported ones.