Skip to content

feat(cli): ~/.config/dimos becomes a real config directory - #3550

Merged
spomichter merged 8 commits into
mainfrom
feat/config-dir
Aug 20, 2026
Merged

feat(cli): ~/.config/dimos becomes a real config directory#3550
spomichter merged 8 commits into
mainfrom
feat/config-dir

Conversation

@spomichter

@spomichter spomichter commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Final layout, per stash — the aws model:

~/.config/dimos/config        # human-edited JSON, extensionless
~/.config/dimos/credentials   # machine-written by dimos login, plain-text key, 0600
  • Default --config is ~/.config/dimos/config; read_config_file treats a directory as absent.
  • Legacy flat file at ~/.config/dimos: dimos run refuses loudly with the exact one-line mv recipe and exits 2 — zero filesystem mutation. The check lives only in the run command: a machine with the flat file predates dimos login existing, so that's the command it will hit. No migration state machine → all three Greptile P1s structurally gone.
  • Verified: targeted tests + 260 across cli/blueprint_config, mypy strict clean, E2E through the installed console script (refusal prints the recipe; following it restores normal operation; credentials land 0600 inside the dir).

@greptile-apps

greptile-apps Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The default DimOS configuration is now stored as ~/.config/dimos/config, with cloud credentials stored separately at ~/.config/dimos/credentials. Default CLI runs detect the former flat-file layout and provide migration instructions.

Confidence Score: 5/5

No blocking failure remains.

No accepted blocking failure remains in the reviewed configuration-path changes.

T-Rex T-Rex Logs

What T-Rex did

  • Validated that the output capture records the exact command, the working directory, and the exit code.
  • Flagged a blocker where the Python3 path resolves to a non-existent interpreter, explaining why the run cannot proceed.

View all artifacts

T-Rex Ran code and verified through T-Rex

Reviews (6): Last reviewed commit: "only refuse legacy config when the defau..." | Re-trigger Greptile

Comment thread dimos/cli/dimos.py Outdated
Comment thread dimos/cli/dimos.py Outdated
@codecov

codecov Bot commented Aug 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.96970% with 1 line in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
dimos/cli/dimos.py 87.50% 0 Missing and 1 partial ⚠️
@@            Coverage Diff             @@
##             main    #3550      +/-   ##
==========================================
+ Coverage   76.13%   76.41%   +0.28%     
==========================================
  Files        1228     1245      +17     
  Lines      119172   120533    +1361     
  Branches    10684    10860     +176     
==========================================
+ Hits        90726    92101    +1375     
+ Misses      25345    25331      -14     
  Partials     3101     3101              
Flag Coverage Δ
OS-ubuntu-24.04-arm 70.89% <96.96%> (+0.34%) ⬆️
OS-ubuntu-latest 72.65% <96.96%> (+0.32%) ⬆️
Py-3.10 72.64% <96.96%> (+0.31%) ⬆️
Py-3.11 72.64% <96.96%> (+0.32%) ⬆️
Py-3.12 72.64% <96.96%> (+0.32%) ⬆️
Py-3.13 72.64% <96.96%> (+0.32%) ⬆️
Py-3.14 72.64% <96.96%> (+0.32%) ⬆️
Py-3.14t 72.64% <96.96%> (+0.32%) ⬆️
SelfHosted-Large 29.81% <48.48%> (+0.06%) ⬆️
SelfHosted-Linux 35.79% <39.39%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
dimos/cli/test_cloud.py 100.00% <100.00%> (ø)
dimos/cli/test_dimos_config.py 100.00% <100.00%> (ø)
dimos/constants.py 76.00% <100.00%> (ø)
...imos/core/coordination/blueprint_config/sources.py 81.89% <100.00%> (ø)
...core/coordination/blueprint_config/test_sources.py 100.00% <100.00%> (ø)
dimos/cli/dimos.py 65.46% <87.50%> (+0.37%) ⬆️

... and 50 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

The flat-file convention collided with anything else claiming the path (#3547).
Default config is now ~/.config/dimos/config.json; a legacy flat file is
auto-migrated in place on first run (content byte-identical, no user action),
and read_config_file treats a directory as absent. Explicit --config paths
are untouched.
~/.config/dimos/{config,credentials} — the aws-style layout. The legacy
flat-file migration moves to constants and runs from login too, so a legacy
machine can log in before its first dimos run.
Comment thread dimos/constants.py Outdated
Comment thread dimos/constants.py Outdated
Comment thread dimos/cli/dimos.py Outdated
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Aug 19, 2026
Replaces auto-migration: zero filesystem mutation, no partial-state failure
modes. Legacy machines get the one-line mv recipe and run it once.
@github-actions github-actions Bot removed the ready-to-merge Required CI checks have passed on this PR label Aug 19, 2026
Comment thread dimos/cli/dimos.py Outdated
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Aug 19, 2026
Comment thread dimos/constants.py Outdated
Comment thread dimos/core/coordination/blueprint_config/test_sources.py Outdated
A machine with the flat config file predates dimos login existing.
@github-actions github-actions Bot removed the ready-to-merge Required CI checks have passed on this PR label Aug 20, 2026
Comment thread dimos/cli/dimos.py Outdated
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Aug 20, 2026
@github-actions github-actions Bot removed the ready-to-merge Required CI checks have passed on this PR label Aug 20, 2026
Comment thread dimos/cli/dimos.py Outdated
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Aug 20, 2026
@github-actions github-actions Bot removed the ready-to-merge Required CI checks have passed on this PR label Aug 20, 2026
@spomichter
spomichter merged commit c272f15 into main Aug 20, 2026
32 of 33 checks passed
@spomichter
spomichter deleted the feat/config-dir branch August 20, 2026 06:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants