Skip to content

Deprecate single-user env vars in favor of users.yaml + Telegram #199

@dcellison

Description

@dcellison

Parent: #196
Depends on: #193, #195, #197, #198

Problem

After the per-user settings (#197) and per-user workspaces (#198) are implemented, several env vars become redundant legacy paths:

  • ALLOWED_USER_IDS - replaced by users.yaml (Replace ALLOWED_USER_IDS with users.yaml in config wizard #193)
  • CLAUDE_MODEL - replaced by per-user model in users.yaml + /settings model
  • CLAUDE_MAX_BUDGET_USD - replaced by per-user max_budget in users.yaml + /settings budget
  • CLAUDE_TIMEOUT_SECONDS - replaced by per-user timeout in users.yaml + /settings timeout
  • CLAUDE_USER - replaced by per-user os_user in users.yaml
  • ALLOWED_WORKSPACES - replaced by per-user allowed_workspaces in users.yaml + /settings workspaces

Proposal

Phase 1: Deprecation warnings

When config.py parses these env vars and a users.yaml equivalent exists, log a deprecation warning:

WARNING: CLAUDE_MODEL in env is deprecated. Set per-user defaults in users.yaml
         or use /settings model via Telegram. This env var will be removed in a
         future release.

The env vars continue to work as global fallback defaults.

Phase 2: Config wizard stops generating them

The config wizard (make config) no longer prompts for these values. #193 already handles ALLOWED_USER_IDS. This issue covers the remaining vars.

Phase 3: Remove from env parsing

After sufficient migration time, remove the env var parsing from config.py. The error messages should guide users to the replacement.

What stays

The env vars in the "truly global" category (see #196) are permanent. This only affects the per-user vars listed above.

Scope

This is the cleanup issue. It should not be started until #193, #195, #197, and #198 are all merged and stable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions