fix(init): odek init scaffolds every current config section and aligns defaults - #165
Merged
Conversation
odek init --global had drifted behind the config surface:
- remove explicit "sandbox": false — unset inherits the default-on
sandbox posture instead of silently opting fresh configs out
- dangerous.non_interactive: deny -> documented default read_only
- add missing sections: guard (with scan scopes), profiles,
transcription, vision, trusted_proxies
- memory: +extract_facts/auto_approve_episodes (explicit security
posture), +min_turns_for_extraction/merge_on_write/consolidate_on_end
- subagent: +max_depth/announce_budget/budget_inherit
- maintenance: +artifacts_max_age_hours; drop dead
skills_skip_max_age_days (config struct no longer has it)
- telegram: +default_chat_id/max_download_size/media_quota_per_chat
- embedding intentionally omitted: pointer field with inherit-check —
a pinned {} would flip configured-vs-unset semantics
New init_template_test.go pins section coverage, the sandbox posture,
the documented non_interactive default, and dead-key absence (RED-first).
CONFIG.md odek-init section synced in the same commit.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
odek | 9ddb0cc | Commit Preview URL Branch Preview URL |
Aug 31 2026, 11:08 AM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Holistic review of
odek initfound the global template (~/.odek/config.jsonscaffold) had drifted behind the current config surface. This PR brings it to full-schema coverage, RED-first (newinit_template_test.gopinned the contract before the fix).Fixes
"sandbox": falsedangerous.non_interactive:"deny"→"read_only"denyis still available to operators who want it).guard(with all 6guard.scanscopes),profiles,transcription,vision,trusted_proxiesmemoryexpandedextract_facts: false,auto_approve_episodes: false(explicit security posture),min_turns_for_extraction,merge_on_write,consolidate_on_endsubagentexpandedmax_depth,announce_budget,budget_inherit, alongside the existingdefault_profilemaintenanceartifacts_max_age_hours: 24; removed deadskills_skip_max_age_days(no longer exists in the config struct — Self-Learning-removal leftover)telegramdefault_chat_id,max_download_size(5 MiB),media_quota_per_chatDeliberately omitted
embedding/memory.embedding— the field is a pointer (*embedding.Config) with inherit-check semantics: pinning{}in a template would flip "configured vs unset" for every embedding-backed subsystem. Same class of reasoning forsessions/memory.extended(documented in CONFIG.md; the init hint points there).Tests (RED-first)
New
cmd/odek/init_template_test.go:"sandbox": falsedangerous.non_interactivemust equal the documented default (read_only)skills_skip_max_age_days), all new keys presentgo test ./cmd/odek/ -run 'Template|InitConfig|Init'✅ ·go vet✅ ·go build ./...✅Docs
docs/CONFIG.md"odek init" section synced with the new template coverage (same commit).