You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
The model flags never reach lore onboard: the model settings are global, and a flag must override the environment and the file #1010
The model settings are global: a provider, a model name, an endpoint and an API key that writ and lore both use, and star may one day. The owner, 2026-10-02: "those settings ought to override the values we hold in configuration or the environment. writ should work exactly the same way. these settings are common to writ and lore. star might one day even rely on it. hence, they're global."
Today one setting has four spellings, and they do not meet:
lore onboard only (cmd/lore/lore/commands.go:774-783)
The flags
--model, --model-provider, --model-endpoint, --model-api-key on the shared root (cmd/internal/cli/root.go:116-119), bound as <program>.model, <program>.model-provider, and so on (cmd/internal/cli/viper.go:113)
writ migrate, which reads the flags directly (cmd/writ/writ/migrate_cmd.go:115-120); not lore onboard
So lore --model-provider ollama onboard still refuses for want of a provider, and neither model.provider in the file nor DEVLORE_MODEL_PROVIDER reaches lore onboard.
Found 2026-10-02 at 01634491, checking that every program holds its own defaults (#1009).
Resolution
One global model section and one resolution for every program: a flag overrides the environment, which overrides the file. lore onboard and writ migrate resolve through the same path, and lore.model.* goes, with no alias.
Ruled 2026-10-02: the model settings' variables are DEVLORE_MODEL_* alone
Asked while planning lane 8 (#927), whose prefix rule would map the shared root's --model-* flags to WRIT_MODEL_PROVIDER and its kin, beside the DEVLORE_MODEL_PROVIDER that cmd/internal/config reads. The owner: "WRIT_MODEL_PROVIDER should go away. we have a DEVLORE_MODEL_PROVIDER. I don't see that as limiting. leave it in lane 24."
So this lane removes the program-prefixed model variables when it maps the model flags to the global model section. Until it lands, lane 8 leaves WRIT_MODEL_PROVIDER and its kin working but undocumented: its generated reference names no variable for the model flags.
Widened 2026-10-02: every flag on the shared root is a global setting
The owner, asked whether WRIT_VERBOSE is writ's or should be global: "yes, global in lane 24". So this lane binds every shared-root flag, not the model flags alone, to a global setting read from DEVLORE_<KEY>: --verbose, --dry-run, --interactive, --unattended, --silent, --config and --model-*. A flag overrides the environment, which overrides the file. The per-program copies (writ.verbose, WRIT_VERBOSE, WRIT_MODEL_PROVIDER) go away.
It takes #1011 with it (--dry-run is dry_run, DEVLORE_DRY_RUN), names each flag's variable in the generated reference, and settles --verbose against the existing DEVLORE_VERBOSITY (quiet, normal, verbose), with --silent the quiet end: one of those names goes. Lane 8 (#927) builds the warning for a variable that names nothing; this lane's names join its list of known names.
2026-10-03: one exception to "the shared root's flags are global".--variable NAME=value will sit on the shared root too (lore, star, writ and devlore-test, and no other program), but it is not a global setting: its values belong to the program that runs, and its environment layer is <PREFIX>_VARIABLE_<NAME>, its file layer <program>.variable.<NAME> (#1023, ruled 2026-10-02). When this lane binds the shared root's flags to DEVLORE_ settings, --variable stays out.
2026-10-03: done in lane 8, PR C, with #1026. The owner ruled: "EVERY ONE of the DEVLORE_ settings must be in config. add that task to lane 8." This issue's substance is part of that task: the global model section, which the --model-* flags bind and lore onboard and writ migrate both read through the config system, its variables DEVLORE_MODEL_* by #927's rule. Its lane on #916 now reads "PR C, in lane 8".
Activity
David-Noble-at-work commentedon Oct 3, 2026
Ruled 2026-10-02: the model settings' variables are
DEVLORE_MODEL_*aloneAsked while planning lane 8 (#927), whose prefix rule would map the shared root's
--model-*flags toWRIT_MODEL_PROVIDERand its kin, beside theDEVLORE_MODEL_PROVIDERthatcmd/internal/configreads. The owner: "WRIT_MODEL_PROVIDER should go away. we have a DEVLORE_MODEL_PROVIDER. I don't see that as limiting. leave it in lane 24."So this lane removes the program-prefixed model variables when it maps the model flags to the global
modelsection. Until it lands, lane 8 leavesWRIT_MODEL_PROVIDERand its kin working but undocumented: its generated reference names no variable for the model flags.David-Noble-at-work commentedon Oct 3, 2026
Widened 2026-10-02: every flag on the shared root is a global setting
The owner, asked whether
WRIT_VERBOSEis writ's or should be global: "yes, global in lane 24". So this lane binds every shared-root flag, not the model flags alone, to a global setting read fromDEVLORE_<KEY>:--verbose,--dry-run,--interactive,--unattended,--silent,--configand--model-*. A flag overrides the environment, which overrides the file. The per-program copies (writ.verbose,WRIT_VERBOSE,WRIT_MODEL_PROVIDER) go away.It takes #1011 with it (
--dry-runisdry_run,DEVLORE_DRY_RUN), names each flag's variable in the generated reference, and settles--verboseagainst the existingDEVLORE_VERBOSITY(quiet, normal, verbose), with--silentthe quiet end: one of those names goes. Lane 8 (#927) builds the warning for a variable that names nothing; this lane's names join its list of known names.docs(plan): lane 8 covers the settings one program has, with a collis…
test(cli): no two settings share an environment variable, and none li…
David-Noble-at-work commentedon Oct 3, 2026
2026-10-03: one exception to "the shared root's flags are global".
--variable NAME=valuewill sit on the shared root too (lore, star, writ and devlore-test, and no other program), but it is not a global setting: its values belong to the program that runs, and its environment layer is<PREFIX>_VARIABLE_<NAME>, its file layer<program>.variable.<NAME>(#1023, ruled 2026-10-02). When this lane binds the shared root's flags toDEVLORE_settings,--variablestays out.David-Noble-at-work commentedon Oct 3, 2026
2026-10-03: done in lane 8, PR C, with #1026. The owner ruled: "EVERY ONE of the DEVLORE_ settings must be in config. add that task to lane 8." This issue's substance is part of that task: the global
modelsection, which the--model-*flags bind andlore onboardandwrit migrateboth read through the config system, its variablesDEVLORE_MODEL_*by #927's rule. Its lane on #916 now reads "PR C, in lane 8".docs(plan): lane 8 puts every DEVLORE_ setting in the config system (#…