Cannot find gopls in a project-specific bin directory according to .envrc
Check for existing issues
- [X] Completed
Describe the bug / provide steps to reproduce it
I don't have Go in my PATH.
My project directory is /home/alexey/drozd.
There is a /home/alexey/drozd/.envrc that contains:
PATH_add $PWD/bin
In /home/alexey/drozd/bin, I have these among others:
lrwxrwxrwx 1 alexey alexey 27 Jul 23 14:26 dlv -> ../tools/deps/trampoline.sh
-rwxrwxr-x 1 alexey alexey 480 Oct 2 18:53 go
lrwxrwxrwx 1 alexey alexey 27 Jul 19 15:12 goimports -> ../tools/deps/trampoline.sh
lrwxrwxrwx 1 alexey alexey 27 Jul 19 15:12 golangci-lint -> ../tools/deps/trampoline.sh
lrwxrwxrwx 1 alexey alexey 27 Jul 23 14:26 gopls -> ../tools/deps/trampoline.sh
lrwxrwxrwx 1 alexey alexey 27 Aug 20 17:05 govulncheck -> ../tools/deps/trampoline.sh
This way, I don't have a “global” Go, but I do have a Go environment within the project directory.
When I start Go from the home directory, and it reopens /home/alexey/drozd as the most recent project directory, it says:
Could not install the Go language server `gopls`,
because `go` was not found.
Expected result:
Because /home/alexey/drozd is the project directory, Zed should read /home/alexey/drozd/.envrc and use go, gopls etc in /home/alexey/drozd/bin.
Environment
Zed: v0.155.2 (Zed) OS: Linux X11 ubuntu 24.04 Memory: 31 GiB Architecture: x86_64 GPU: Intel(R) UHD Graphics (CML GT2) || Intel open-source Mesa driver || Mesa 24.0.9-0ubuntu0.1
If applicable, add mockups / screenshots to help explain present your vision of the feature
No response
If applicable, attach your Zed.log file to this issue.
Zed.log
2024-10-09T15:06:10.587308368+03:00 [INFO] ========== starting zed ==========
2024-10-09T15:06:10.603678646+03:00 [WARN] failed to load font 'PowerlineSymbols'
2024-10-09T15:06:10.604819302+03:00 [WARN] failed to load font 'PowerlineSymbols'
2024-10-09T15:06:10.619300889+03:00 [INFO] Compositor detection: _NET_WM_CM_S?=false, _NET_WM_CM_OWNER=false, _NET_SUPPORTING_WM_CHECK=true
2024-10-09T15:06:10.619358138+03:00 [INFO] x11: compositor present: true, gtk_frame_extents_supported: false
2024-10-09T15:06:10.625589091+03:00 [INFO] perform;
2024-10-09T15:06:10.625629958+03:00 [INFO] authenticate;
2024-10-09T15:06:10.625677162+03:00 [INFO] read_command;
2024-10-09T15:06:10.625735478+03:00 [INFO] Opening main db
2024-10-09T15:06:10.6262053+03:00 [INFO] new;
2024-10-09T15:06:10.626241705+03:00 [INFO] socket reader;
2024-10-09T15:06:10.626517955+03:00 [INFO] Opening main db
2024-10-09T15:06:10.627036801+03:00 [INFO] keep_updated;
2024-10-09T15:06:10.628495685+03:00 [INFO] Using git binary path: None
2024-10-09T15:06:10.667067749+03:00 [ERROR] theme not found: Fleet Light
2024-10-09T15:06:10.667400551+03:00 [INFO] initializing context server client
2024-10-09T15:06:10.667500582+03:00 [INFO] Registering built-in prompt template: content_prompt
2024-10-09T15:06:10.667920973+03:00 [INFO] Registering built-in prompt template: edit_workflow
2024-10-09T15:06:10.668145586+03:00 [INFO] Registering built-in prompt template: project_slash_command
2024-10-09T15:06:10.668184202+03:00 [INFO] Registering built-in prompt template: step_resolution
2024-10-09T15:06:10.668638896+03:00 [INFO] Registering built-in prompt template: terminal_assistant_prompt
2024-10-09T15:06:10.668885984+03:00 [INFO] No prompt template overrides directory found at /home/alexey/.local/share/zed/prompt_overrides. Using built-in prompts.
2024-10-09T15:06:10.669161683+03:00 [INFO] extensions updated. loading 5, reloading 0, unloading 0
2024-10-09T15:06:10.67129024+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.671333677+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.671361183+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.671387606+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.671431476+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.672758862+03:00 [INFO] activate is not implemented on Linux, ignoring the call
2024-10-09T15:06:10.672822864+03:00 [INFO] Opening main db
2024-10-09T15:06:10.673993387+03:00 [INFO] perform;
2024-10-09T15:06:10.674016022+03:00 [INFO] authenticate;
2024-10-09T15:06:10.67404513+03:00 [INFO] read_command;
2024-10-09T15:06:10.674215545+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.674267672+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.674295895+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.674323742+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.674370081+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.674693745+03:00 [INFO] socket reader;
2024-10-09T15:06:10.674835972+03:00 [INFO] Using Visual { id: 130, colormap: 0, depth: 32 }
2024-10-09T15:06:10.674874597+03:00 [INFO] Creating colormap 50331651
2024-10-09T15:06:10.67496015+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.675505567+03:00 [INFO] building git repository, `.git` path in the worktree: ".git"
2024-10-09T15:06:10.683814196+03:00 [INFO] new;
2024-10-09T15:06:10.684723962+03:00 [INFO] keep_updated;
2024-10-09T15:06:10.685493362+03:00 [WARN] Theme "Fleet Dark" is using a deprecated style property: scrollbar_thumb.background. Use `scrollbar.thumb.background` instead.
2024-10-09T15:06:10.68551601+03:00 [WARN] Theme "Fleet Dark Purple" is using a deprecated style property: scrollbar_thumb.background. Use `scrollbar.thumb.background` instead.
2024-10-09T15:06:10.68553273+03:00 [WARN] Theme "Fleet Gray" is using a deprecated style property: scrollbar_thumb.background. Use `scrollbar.thumb.background` instead.
2024-10-09T15:06:10.68555105+03:00 [WARN] Theme "Fleet Light" is using a deprecated style property: scrollbar_thumb.background. Use `scrollbar.thumb.background` instead.
2024-10-09T15:06:10.697499052+03:00 [INFO] Enabling Vulkan Portability
2024-10-09T15:06:10.697535304+03:00 [INFO] Enabling color space support
2024-10-09T15:06:10.707074663+03:00 [INFO] Adapter: "Intel(R) UHD Graphics (CML GT2)"
2024-10-09T15:06:10.707343115+03:00 [INFO] No ray tracing extensions are supported
2024-10-09T15:06:10.709219507+03:00 [INFO] Using surface present mode MAILBOX
2024-10-09T15:06:10.709291681+03:00 [WARN] Unable to forbid exclusive full screen
2024-10-09T15:06:10.710568912+03:00 [INFO] Creating a descriptor pool for at most 16 sets
2024-10-09T15:06:10.710669499+03:00 [INFO] Creating a descriptor pool for at most 16 sets
2024-10-09T15:06:10.710761802+03:00 [INFO] Initializing Blade pipelines for surface SurfaceInfo { format: Bgra8UnormSrgb, alpha: Ignored }
2024-10-09T15:06:10.76777498+03:00 [INFO] set environment variables from shell:/bin/bash, path:/home/alexey/bin:/home/alexey/ai/mambaforge/condabin:/home/alexey/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/alexey/.local/share/JetBrains/Toolbox/scripts:/home/alexey/.local/share/JetBrains/Toolbox/scripts
2024-10-09T15:06:10.821815337+03:00 [INFO] Refreshing at 16664 micros
2024-10-09T15:06:10.821886984+03:00 [INFO] x11: no compositor present, falling back to server-side window decorations
2024-10-09T15:06:10.82274442+03:00 [INFO] Using GPU: GPUSpecs { is_software_emulated: false, device_name: "Intel(R) UHD Graphics (CML GT2)", driver_name: "Intel open-source Mesa driver", driver_info: "Mesa 24.0.9-0ubuntu0.1" }
2024-10-09T15:06:10.836311358+03:00 [INFO] set status on client 0: Authenticating
2024-10-09T15:06:10.836781536+03:00 [INFO] perform;
2024-10-09T15:06:10.836814004+03:00 [INFO] authenticate;
2024-10-09T15:06:10.836852409+03:00 [INFO] read_command;
2024-10-09T15:06:10.837465117+03:00 [INFO] socket reader;
2024-10-09T15:06:10.839180289+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.839407614+03:00 [INFO] Opening main db
2024-10-09T15:06:10.845332024+03:00 [INFO] new;
2024-10-09T15:06:10.846246971+03:00 [INFO] keep_updated;
2024-10-09T15:06:10.850434306+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.851020731+03:00 [INFO] Opening main db
2024-10-09T15:06:10.85182864+03:00 [INFO] set status on client 243190: Connecting
2024-10-09T15:06:10.86667935+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.872709952+03:00 [INFO] attempting to start language server "gopls", path: "/home/alexey/drozd", id: 1
2024-10-09T15:06:10.872755616+03:00 [INFO] Initializing default prettier with plugins {}
2024-10-09T15:06:10.872851483+03:00 [INFO] Initializing default prettier with plugins {}
2024-10-09T15:06:10.886298428+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:10.886728272+03:00 [ERROR] no cached binary
2024-10-09T15:06:10.886769745+03:00 [ERROR] failed to start language server "gopls": cannot install gopls
2024-10-09T15:06:10.886786597+03:00 [ERROR] server stderr: Some("")
2024-10-09T15:06:10.886802575+03:00 [INFO] retrying installation of language server "gopls" in 1s
2024-10-09T15:06:11.035103638+03:00 [INFO] connected to rpc endpoint https://collab.zed.dev/rpc
2024-10-09T15:06:11.234513095+03:00 [INFO] Initializing default prettier with plugins {}
2024-10-09T15:06:11.235179133+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:11.613276674+03:00 [INFO] add connection to peer
2024-10-09T15:06:11.613307189+03:00 [INFO] add_connection;
2024-10-09T15:06:11.613329389+03:00 [INFO] waiting for server hello
2024-10-09T15:06:11.613428268+03:00 [INFO] got server hello
2024-10-09T15:06:11.613453833+03:00 [INFO] set status to connected (connection id: ConnectionId { owner_id: 0, id: 0 }, peer id: PeerId { owner_id: 565, id: 143559 })
2024-10-09T15:06:11.613484579+03:00 [INFO] set status on client 243190: Connected { peer_id: PeerId { owner_id: 565, id: 143559 }, connection_id: ConnectionId { owner_id: 0, id: 0 } }
2024-10-09T15:06:11.828674175+03:00 [INFO] Initializing default prettier with plugins {}
2024-10-09T15:06:11.829397157+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:11.83656676+03:00 [INFO] Initializing default prettier with plugins {}
2024-10-09T15:06:11.837201045+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:11.885391426+03:00 [INFO] Initializing default prettier with plugins {}
2024-10-09T15:06:11.886233839+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:11.886965597+03:00 [ERROR] no cached binary
2024-10-09T15:06:11.887004453+03:00 [INFO] About to spawn test binary
2024-10-09T15:06:11.887034454+03:00 [WARN] test binary failed to launch
2024-10-09T15:06:11.88705134+03:00 [WARN] test binary check failed
2024-10-09T15:06:11.887070645+03:00 [INFO] beginning to reinstall server
2024-10-09T15:06:11.88709948+03:00 [INFO] deleting server container
2024-10-09T15:06:11.890294942+03:00 [INFO] Initializing default prettier with plugins {}
2024-10-09T15:06:11.890364399+03:00 [INFO] attempting to start language server "gopls", path: "/home/alexey/drozd", id: 2
2024-10-09T15:06:11.89555479+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:11.896028742+03:00 [ERROR] no cached binary
2024-10-09T15:06:11.896088689+03:00 [ERROR] failed to start language server "gopls": cannot install gopls
2024-10-09T15:06:11.896116296+03:00 [ERROR] server stderr: Some("")
2024-10-09T15:06:11.896142279+03:00 [INFO] retrying installation of language server "gopls" in 1s
2024-10-09T15:06:11.904906515+03:00 [INFO] Initializing default prettier with plugins {}
2024-10-09T15:06:11.914994036+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:12.036497013+03:00 [INFO] Initializing default prettier with plugins {}
2024-10-09T15:06:12.037327319+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:12.086334237+03:00 [INFO] Initializing default prettier with plugins {}
2024-10-09T15:06:12.086997387+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:12.199569732+03:00 [INFO] Initializing default prettier with plugins {}
2024-10-09T15:06:12.200271085+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:12.228472404+03:00 [INFO] Initializing default prettier with plugins {}
2024-10-09T15:06:12.229132272+03:00 [WARN] request completed with error: failed to connect to the server
2024-10-09T15:06:12.377037965+03:00 [ERROR] failed to fetch cached embeddings via cloud model
Caused by:
RPC request GetCachedEmbeddings failed: permission denied
2024-10-09T15:06:12.897105583+03:00 [ERROR] no cached binary
2024-10-09T15:06:12.897225992+03:00 [INFO] About to spawn test binary
2024-10-09T15:06:12.897317703+03:00 [WARN] test binary failed to launch
2024-10-09T15:06:12.897365592+03:00 [WARN] test binary check failed
2024-10-09T15:06:12.897414719+03:00 [INFO] beginning to reinstall server
2024-10-09T15:06:12.897490249+03:00 [INFO] deleting server container
2024-10-09T15:06:12.89789911+03:00 [INFO] attempting to start language server "gopls", path: "/home/alexey/drozd", id: 3
2024-10-09T15:06:12.899216964+03:00 [ERROR] no cached binary
2024-10-09T15:06:12.899389182+03:00 [ERROR] failed to start language server "gopls": cannot install gopls
2024-10-09T15:06:12.899452545+03:00 [ERROR] server stderr: Some("")
2024-10-09T15:06:12.899511971+03:00 [INFO] retrying installation of language server "gopls" in 1s
2024-10-09T15:06:13.900634275+03:00 [ERROR] no cached binary
2024-10-09T15:06:13.900757915+03:00 [INFO] About to spawn test binary
2024-10-09T15:06:13.900820522+03:00 [WARN] test binary failed to launch
2024-10-09T15:06:13.900872201+03:00 [WARN] test binary check failed
2024-10-09T15:06:13.900923936+03:00 [INFO] beginning to reinstall server
2024-10-09T15:06:13.901000837+03:00 [INFO] deleting server container
2024-10-09T15:06:13.901450316+03:00 [INFO] attempting to start language server "gopls", path: "/home/alexey/drozd", id: 4
2024-10-09T15:06:13.902796801+03:00 [ERROR] no cached binary
2024-10-09T15:06:13.902963464+03:00 [ERROR] failed to start language server "gopls": cannot install gopls
2024-10-09T15:06:13.903026815+03:00 [ERROR] server stderr: Some("")
2024-10-09T15:06:13.903086347+03:00 [INFO] retrying installation of language server "gopls" in 1s
2024-10-09T15:06:14.904107682+03:00 [ERROR] no cached binary
2024-10-09T15:06:14.904278524+03:00 [INFO] About to spawn test binary
2024-10-09T15:06:14.904345752+03:00 [WARN] test binary failed to launch
2024-10-09T15:06:14.904400147+03:00 [WARN] test binary check failed
2024-10-09T15:06:14.904455505+03:00 [INFO] beginning to reinstall server
2024-10-09T15:06:14.904567706+03:00 [INFO] deleting server container
2024-10-09T15:06:14.905003074+03:00 [INFO] attempting to start language server "gopls", path: "/home/alexey/drozd", id: 5
2024-10-09T15:06:14.906649785+03:00 [ERROR] no cached binary
2024-10-09T15:06:14.906816504+03:00 [ERROR] failed to start language server "gopls": cannot install gopls
2024-10-09T15:06:14.906887387+03:00 [ERROR] server stderr: Some("")
2024-10-09T15:06:14.906953954+03:00 [ERROR] Hit 4 reinstallation attempts for "gopls"
2024-10-09T15:06:15.71229917+03:00 [WARN] request completed with error: request or operation took longer than the configured timeout time
2024-10-09T15:06:15.712541485+03:00 [ERROR] error fetching latest release
Caused by:
0: request or operation took longer than the configured timeout time
1: [28] Timeout was reached
2024-10-09T15:06:15.713422339+03:00 [INFO] Node runtime install_if_needed
2024-10-09T15:06:15.82468852+03:00 [INFO] starting language server process. binary path: "/home/alexey/.local/share/zed/node/node-v22.5.1-linux-x64/bin/node", working directory: "/", args: ["/home/alexey/.local/share/zed/copilot/copilot-v0.5.0/dist/agent.js", "--stdio"]
2024-10-09T15:06:16.209958625+03:00 [INFO] Language server with id 0 sent unhandled notification LogMessage:
{
"level": 0,
"message": "[DEBUG] [agent] [2024-10-09T12:06:16.205Z] Agent service starting",
"metadataStr": "[DEBUG] [agent] [2024-10-09T12:06:16.205Z]",
"extra": [
"Agent service starting"
]
}
2024-10-09T15:06:16.212192727+03:00 [INFO] Language server with id 0 sent unhandled notification client/registerCapability:
{
"registrations": [
{
"id": "a08c6ad5-8e33-47fd-8f78-4e0e6d2cebef",
"method": "workspace/didChangeWorkspaceFolders",
"registerOptions": {}
}
]
}
2024-10-09T15:06:16.760134144+03:00 [INFO] Language server with id 0 sent unhandled notification LogMessage:
{
"level": 0,
"message": "[DEBUG] [agent] [2024-10-09T12:06:16.753Z] Telemetry initialized",
"metadataStr": "[DEBUG] [agent] [2024-10-09T12:06:16.753Z]",
"extra": [
"Telemetry initialized"
]
}
Oh, I think this might be an interesting case...
When I start Go from the home directory, and it reopens
/home/alexey/drozdas the most recent project directory, it says:
(I assume you mean "when I start Zed")
Question 1: What happens when you do the following:
- Ensure no Zed is running
- Go to your home directory
zed ./drozd
Does it work then?
Question 2: When you start Zed from your home directory and then open the drozd project and then launch the built-in terminal and do env | grep ZED_ENVIRONMENT what do you see?
Yes, “when I start Zed”, sorry.
- Fails in the same way as in the issue description.
ZED_ENVIRONMENT=cli
I couldn't follow the instructions in question 2 exactly because I don't know how to close a project :-) Zed always reopens the last project on startup for me.
I couldn't follow the instructions in question 2 exactly because I don't know how to close a project :-) Zed always reopens the last project on startup for me.
Closing a project means just closing its window. In this case, you can do the following:
- Open Zed
- Open another project in a new window
- Close the
drozdwindow - Open
drozdagain - Launch the built-in terminal and do
env | grep ZED_ENVIRONMENTwhat do you see?
- Launch the built-in terminal and do
env | grep ZED_ENVIRONMENTwhat do you see?
Following the new instructions, I get empty output from this command.
I think the problem is that when you launch Zed from the CLI, we treat the environment inherited by the zed CLI as the one with the highest-precedence. That's similar to what VS Code does.
In concrete terms: export HELLO=WORLD && zed will mean that when launching language servers, or spawning a terminal, the HELLO will always have WORLD.
But that also means that it should work for you when
- you do not launch Zed from the CLI. That isn't really possible on Linux, so it's a non-option.
- you
cd ./drozd && zed
Option (2) should work, I'm pretty sure.
The other options we have could be add a --no-environment flag to the CLI that stops it from inheriting the environment explicitly.
I think the problem is that when you launch Zed from the CLI, we treat the environment inherited by the zed CLI as the one with the highest-precedence
I've got so many questions!
What does it mean to “launch from the CLI”? Does it refer to launching from a terminal as opposed to launching e.g. from a shortcut in the desktop environment? What's the principal difference between these alternatives? I usually start applications from the built-in command line or keyboard shortcuts in my window manager (Awesome), does that count as CLI?
No matter how the zed binary is started, it always inherits some value of PATH. It has at least the standard locations like /usr/bin. On my system, no matter whether I start it from the window manager or from the home directory in the terminal, Zed inherits a PATH value without Go. The whole point of .envrc is to add a project-local override to the PATH.
And what is ZED_ENVIRONMENT, who sets it, and what does it affect? I definitely never set it in my ~/.profile or anything like that.
That's similar to what VS Code does.
VS Code needs an extension to handle .envrc in the first place, but once that's installed, it passes the scenario in the issue description as expected.
cd ./drozd && zed
This is the workaround I'm currently using. The problem is, I have to exit and restart Zed whenever I need to switch projects. What I'd like is to be able to work on two or more project directories (say, ~/drozd and ~/drozd-beta), each with its own .envrc pointing to its own bin subdirectory with its own versions of Go tools in it, and use the right gopls for each project.
To summarize: I'm not sure I understand exactly how Zed handles environment variables, but if I'm getting it right, Zed treats variables inherited from its launch environment as higher priority than the variables defined in a project's .envrc. If this is true, I don't think it's the right behavior: the whole idea of .envrc is to define local overrides. VS Code (with the right extension installed) treats .envrc as higher priority than the launch environment, and I think that's correct.
I've got so many questions!
Before I get into the rest, maybe this will help 😄 https://zed.dev/docs/environment
What does it mean to “launch from the CLI”? Does it refer to launching from a terminal as opposed to launching e.g. from a shortcut in the desktop environment? What's the principal difference between these alternatives?
Yeah, that's what it means. I realize I was a bit macOS-centric in my comment: on macOS Zed comes with two binaries — zed and cli. zed is our main program, which is what gets started when you click on the Zed icon in the macOS dock. cli is the Zed CLI that can start the main program and send messages to it ("open this file").
On macOS, when you launch Zed from the macOS Dock or from an application launcher or by clicking on the Zed.app icon in Finder it does not inherit any environment, at least no environment to speak of, because there's no parent process that was spawned in a shell and hence no real env vars were set (besides the ones you can configure with macOS' launchd, I think)
On Linux, it's different. I realize now that we only ship one binary. But the second point remains: which environment does that binary inherit when you launch Zed via, say, the GNOME menu?
And what is
ZED_ENVIRONMENT, who sets it, and what does it affect? I definitely never set it in my~/.profileor anything like that.
I added that to Zed, so these issues are easier to bug. Its value is either "cli" or "project".
if I'm getting it right, Zed treats variables inherited from its launch environment as higher priority than the variables defined in a project's
.envrc. If this is true, I don't think it's the right behavior
I'm not sure. Not saying you're wrong, but I'm honestly not sure. Because I can see this case too:
cd project
# direnv loads...
export DEBUG=true
zed .
In that case, you'd expect zed to inherit the DEBUG right? But what if the .envrc in the project sets DEBUG=false?
I honestly don't have a solution yet. I need to think more about it. If you have the time, I'd also love to get your input on it after you read through that environment docs page I wrote.