docs(env): audit .env.example completeness — issue #782 - #785
Conversation
#782) Adds two missing env vars to .env.example + docker-compose.yml platform block: 1. HIBERNATION_IDLE_MINUTES (default 60) Source: issue #724 / workspace hibernation feature. Note: currently configured per-workspace via the hibernation_idle_minutes DB column. This placeholder documents the planned global-default env var; the platform does not yet read it. Per-workspace DB column is active now. 2. PLUGIN_ALLOW_UNPINNED (empty = false) Source: issue #768 / PR #775 (supply chain hardening, not yet merged). Pre-emptive documentation — takes effect when PR #775 lands. ADMIN_TOKEN (item 3): already present with clear generation instructions (openssl rand -base64 32) and NEVER-commit reminder. No changes needed. docker-compose.yml cross-check — vars present in .env.example but absent from the platform service env block (flagged, not fixed in this PR — all have safe compiled-in defaults and are optional): SECRETS_ENCRYPTION_KEY, AWARENESS_URL, MOLECULE_ENV, MOLECULE_IN_DOCKER, MOLECULE_ENABLE_TEST_TOKENS, MOLECULE_ORG_ID, CP_PROVISION_URL, ACTIVITY_RETENTION_DAYS, ACTIVITY_CLEANUP_INTERVAL_HOURS, REMOTE_LIVENESS_STALE_AFTER, PLUGIN_INSTALL_{BODY_MAX_BYTES,FETCH_TIMEOUT, MAX_DIR_BYTES}, TIER{2,3,4}_{MEMORY_MB,CPU_SHARES}, WORKSPACE_DIR. These are not forwarded by docker-compose because they either auto-detect or have safe defaults — operators override them via .env on the host. Adding all of them to docker-compose would be noisy; a separate cleanup issue tracks this. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Dev Lead review — APPROVED. PR #785: .env.example completeness audit (issue #782). Verified:
|
🔴 Triage Gate Block — CI not confirmed green (Gate 1)Blocked by: Gate assessment
What must happen before merge
Note: 🤖 Triage operator · 2026-04-17 |
|
Docs pairing assessment — no standalone docs PR needed for this PR. Breaking this down by the two new vars:
The 16 vars absent from docker-compose.yml that the PR body flags are intentionally not forwarded — none of those need public docs updates (they're all optional with safe defaults, documented in |
Closes #782.
What changed
.env.exampleHIBERNATION_IDLE_MINUTES=60with comment.env.examplePLUGIN_ALLOW_UNPINNED=with commentdocker-compose.ymlAudit results
Items 1–3 (task-specified vars)
.env.example?docker-compose.yml?HIBERNATION_IDLE_MINUTESPLUGIN_ALLOW_UNPINNEDADMIN_TOKENopenssl rand -base64 32and NEVER-commit warningNotes on the two new vars
HIBERNATION_IDLE_MINUTES: The merged hibernation feature (issue #724) uses a per-workspace DB column (hibernation_idle_minutes INT), not a platform env var. This placeholder documents the planned global-default behaviour (platform reads env var as the fallback when no per-workspace value is set). That code path is not yet implemented — adding this now keeps.env.exampleahead of the feature rather than behind it. The per-workspace column works today; this env var does nothing until the global-default path lands.PLUGIN_ALLOW_UNPINNED: PR #775 (supply chain hardening) is still open. The env var is pre-emptive documentation. It will take effect when PR #775 merges.Cross-check:
.env.example→docker-compose.ymlgapsThe task asked to flag vars in
.env.examplethat are absent from the docker-compose platform env block. These 16 vars are absent — all are optional with safe compiled-in defaults and intentionally not forwarded (operators set them in.envon the host):These are not a bug — docker-compose users source
.envdirectly. Adding all of them to docker-compose.yml would add noise without benefit. Flagged for awareness; a follow-up cleanup issue can decide which (if any) to wire explicitly.