Constants§
- AI_
AGENTS_ DIR - AI_DIR
- AI_
JOBS_ DIR - CONFIG_
DEFAULTS_ FILE - CONFIG_
FILE - CREDENTIALS_
FILE - ITEMS_
DIR - JOY_DIR
- LOG_DIR
- MILESTONES_
DIR - PROJECT_
DEFAULTS_ FILE - PROJECT_
FILE - RELEASES_
DIR
Functions§
- deep_
merge_ value - Recursively merge
overlayintobase. Object keys are merged; all other types are replaced. Recursively mergeoverlayintobase(public for use by config validation). - defaults_
config_ path - Returns the path to the committed project defaults: .joy/config.defaults.yaml
- find_
project_ root - Walk up from
startlooking for a.joy/directory. - global_
config_ path - Returns the path to the personal global config: ~/.config/joy/config.yaml
- is_
initialized - joy_dir
- load_
acronym - Load the project acronym from project.yaml.
- load_
ai_ defaults - Load AI defaults (capabilities granted to AI members) from project.defaults.yaml, with project.yaml ai-defaults overlay.
- load_
config - Load project config by merging four layers (code defaults < project defaults < global personal < local personal).
- load_
config_ value - Load the merged config as a serde_json::Value (preserves arbitrary keys).
- load_
mode_ defaults - Load mode defaults by merging project.defaults.yaml with project.yaml modes section.
- load_
personal_ config_ value - Load only the user-set config values (personal local + global, no defaults). Returns an empty object if no personal config exists.
- load_
project - Load the full project metadata from project.yaml under the given
project root. Applies migrations via
read_project. - load_
raw_ mode_ defaults - Load the raw mode defaults from project.defaults.yaml (before project.yaml merge). Used for source tracking in resolve_mode().
- local_
config_ path - Returns the path to the personal per-project config: .joy/config.yaml
- project_
defaults_ path - read_
project - Read project.yaml from an explicit path, applying schema migrations.
- read_
yaml - write_
yaml - write_
yaml_ preserve - Write YAML while preserving top-level fields not in the struct. Reads the existing file, takes all modeled fields from the struct, and preserves any top-level keys that the struct doesn’t know about.