Skip to content

home: PR #695's dead-env cleanup left two in the same block — file watcher is not actually off (dead DISABLE_FILEWATCHER name) and LSP_TOOL still set #698

Closed

Description

@dezren39

Finding

PR #695 (merged, merge commit 3d7b96a5cd4d5476942ec5efa6a7df128159e244, commit 2446d3e999c86c16754bbda901c535b552395154) dropped three dead OpenCode env vars from home/common/default.nix, citing developing-today-forks/opencode#105 and developing-today-forks/opencode#115 — but the same sessionVariables block still sets two more names those same issues adjudicated as dead, and one of them carries an active behavioural intent that is silently not happening.

Found by the pr-diff-review job reviewing PR #695; verified against current main of both repos on 2026-10-23 (code 3d7b96a5, opencode fe5d6c8e943882a01d7914264b710c7e8ac11b5a), cross-checked via local clones and gh api contents.

Evidence

1. OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER — the file watcher is NOT off, despite the config saying it is

  • home/common/default.nix:1252-1255 on current main:
    # File watcher off by default (Drew, 2026-10-20): the working trees
    # are giant, and watching costs more than the live-external-edit
    # awareness it buys. Diffs are git-computed on demand either way.
    OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER = "1";
    
  • Nothing in opencode reads that name: git grep OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER on opencode main returns only docs rows (packages/web/.../cli.mdx), no code reader.
  • The actual gate is packages/cli/src/server-process.ts:146 in opencode:
    filewatcher: !truthy(process.env.OPENCODE_FILEWATCHER_DISABLE ?? process.env.OPENCODE_DISABLE_FILEWATCHER),
    i.e. the watcher defaults to ON and is disabled only via OPENCODE_DISABLE_FILEWATCHER / OPENCODE_FILEWATCHER_DISABLE. Neither correct name is set anywhere in this repo (git grep on main: no hits).
  • This exact dead name was already adjudicated in opencode: Bump tracing from 0.1.38 to 0.1.40 in /sources/pavex/examples/skeleton #104 ("filewatcher-disable sets a dead env name — OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER is read nowhere", CLOSED, fixed there by renaming opencode's own setters to OPENCODE_DISABLE_FILEWATCHER), and Update github.com/charmbracelet/promwish digest to 6c16e8f - autoclosed #115's body calls it out again. PR home: drop dead OpenCode env vars (ENABLE_EXA, ENABLE_PARALLEL, EXPERIMENTAL_ICON_DISCOVERY) #695 removed OPENCODE_EXPERIMENTAL_ICON_DISCOVERY ~7 lines above this line, in the same block, but left this one.

2. OPENCODE_EXPERIMENTAL_LSP_TOOL — dead line from the same #105 set PR #695 was cleaning up

Why it matters

  • Item 1 is not cosmetic: the home config's stated intent (Drew, 2026-10-20 — watcher off because the working trees are giant and watching costs more than it buys) is silently not in effect on any machine built from this config. The server spawns with the file watcher on by default.
  • Item 2 is the same silent-no-op class PR home: drop dead OpenCode env vars (ENABLE_EXA, ENABLE_PARALLEL, EXPERIMENTAL_ICON_DISCOVERY) #695 was created to eliminate; leaving it re-creates the "set but unread" trap for the next reader of this block.
  • Cross-repo scope checked: neither dead name is set in developing-today/openchamber or dezren39/nix (git grep on their mains: no hits) — this is a code-repo-only setter, so this single issue tracks the whole finding.

Acceptance criteria

Activity

  1. added a commit that references this issue on Oct 25, 2026
  2. added
    task/triageQueue packet kind: verify, reproduce, and route this item
    do-not-auto-editAutomation may look but must not edit this
    user/reviewNeeds a user-look: Muse reviews first and handles what it can
    on Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

do-not-auto-editAutomation may look but must not edit thissource/pr-diff-reviewFiled by the pr-diff-review jobstatus/needs-triageNot yet triaged; needs a first lookstatus:donetask/triageQueue packet kind: verify, reproduce, and route this itemuser/reviewNeeds a user-look: Muse reviews first and handles what it can

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions