keel.toml belongs to the binary, not the library #133
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
keel::config::load(".")gives the library ownership of a configuration file. That is the wrong side of the boundary.The defect
A
.tomlbelongs to a binary. When keel is consumed as a library, every runtime value it needs — listen address, store, cache, estate policy — must be supplied by the caller, because the caller is the one that owns a configuration surface and answers to its users for it.Today a consumer inherits
keel.tomlwhether it wants it or not. For stim that means two configuration files whose[listen]and[store]sections directly overlap, which violates the substrate law that runtime policy enters through exactly one cascade.What is and is not the problem
The types are fine and should stay:
Listen,Cache,Estate,Generation,Cleanupare keel vocabulary, declared by keel, and a caller needs them to express intent. Keeping them is correct — it is the same reason plumb was stripped ofListen/Store/Kind: vocabulary belongs to the layer that owns the meaning.The problem is narrower: file loading lives in the library.
keel-apiis a demo binary and may keepkeel.toml;keelthe library should accept constructed values and never read a file on its own.Expected shape
keel(lib): accepts caller-constructed config values; no file discovery, noload()keel-api(bin): keepskeel.tomland constructs those values from itAcceptance
keel.tomlexisting anywhere