You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit da01e1f
Browse filesBrowse the repository at this point in the historyBrowse files
fix: publish the active runner environment through a guarded accessor (#27) (#28)
* fix: publish the active runner environment through the guarded accessor (#27)
Code, Tooling and the REPL read pythonservice.Service.ActiveEnv on their
own gRPC goroutines while this agent published it from Init and cleared
it from Stop. runnerMu ordered the writers against each other but bought
nothing on the read side, and the field lives in another module, so the
fix had to land there first: service-python v0.0.60 unexports it behind
ActiveEnv/SetActiveEnv under an RWMutex.
Both call sites now go through the setter, which is what gives a reader
arriving after teardown the clean nil fallback instead of an environment
whose docker client is already closed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix: release with the cgo the binary needs, and name the accessors so stale reads fail (#27)
Review findings on the first cut of this branch.
The dependency bump pulls Core's tree-sitter grammars, which are cgo, but
.goreleaser.yaml built with CGO_ENABLED=0 — so every tagged release would
have failed at compile with "build constraints exclude all Go files", and
nothing would have said so: ci.yml builds with the runner default and the
release workflow only runs on a tag. Both builds now enable cgo with the
per-target compilers, and the release runs through goreleaser-cross, which
is where those compilers come from. The shared core release workflow runs
goreleaser on a bare runner and cannot supply them.
service-python v0.0.61 renames the accessors to ActiveEnvironment /
SetActiveEnvironment. The v0.0.60 getter reused the removed field's name,
so a method value satisfied every stale read: `== nil` compiled as dead
code and require.Nil passed vacuously — which is exactly how the assertion
in init_test.go went quiet. No pre-v0.0.60 spelling compiles now.
TestReleaseCanCompileTheCgoTheBinaryNeeds is the guard the release path
never had. activeEnvRuntime is gone in favour of initTestRuntime, which
already stood up the same runtime, and the churn test is named for what it
pins rather than what it suggests.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
0 commit comments