A later settings save can replace a damaged config.json with defaults
Maintainers usually reply within 1 day
@agentvivekkumar is already working on this.
Since Oct 10, 2026.
Assessment
This issue has not been assessed yet.
Description
Summary
readConfig() returns the default configuration when config.json exists and JSON.parse fails. Launch does not write that result back. bootstrapHiveServices() returns first, because hive.enabled() is false when harnessHome is missing.
A later writeConfig() merges the patch onto those defaults. persistConfig() then writes the result over the damaged file with writeFileSync.
Why this matters
The damaged file can still be repaired. The next settings save can remove the business folder, the mailbox list, and the send rules from disk.
Evidence
readConfig()insrc/main/config.tswriteConfig()andpersistConfig()insrc/main/config.tsbootstrapHiveServices()andmigrateBusinessFolder()insrc/main/index.tshive.enabled()insrc/main/hive.ts
migrateBusinessFolder() runs only after the hive is enabled. It is not the startup overwrite path.
Change
If config.json exists and cannot be parsed, writeConfig() must throw and must not write. Keep the damaged bytes. Use writeFileAtomic for a valid save. A safe atomic write does not make a write of the defaults safe.
Test plan
- Write
{to a temporaryconfig.json. - Run the startup path. The file bytes must stay
{. - Attempt one settings save. The save must fail. The bytes must stay
{. - A missing
config.jsonmay still be created by a real save. - A valid config still round-trips.
Checkout: main at 0ef922bac25d6aad226243c72a0a7f142cfacfec.
- Dominant language
- TypeScript
- Stars
- 273
- Forks
- 211
- Avg merge
- 13h
- Merged PRs (30d)
- 197
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from agentvivekkumar/dontbemichael
-
Windows: a hidden Claude call cannot start when the CLI path has a spacePossibly taken @theshloksschauhan claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
agentvivekkumar/dontbemichael#426 ·
Maintainers usually reply within 1 day
-
Raise Home and Manager setup text to the 14px floorPossibly taken @glenmiracle18 claimed this today. Openbug os:windows
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
agentvivekkumar/dontbemichael#416 · 1 comment ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 18/100
agentvivekkumar/dontbemichael#472 ·
Maintainers usually reply within 1 day
-
Run a scheduled job now, to see it work without waiting for its clockPossibly taken @19BEC0802 claimed this today. Openenhancement
Difficulty 4/5 3-5 days Newbie friendliness 15/100
agentvivekkumar/dontbemichael#467 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 8/100
agentvivekkumar/dontbemichael#466 ·
Maintainers usually reply within 1 day
All issues in agentvivekkumar/dontbemichael
Similar issues
-
area:ui effort:S enhancement priority:P2
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
QuantumNous/new-api#7839 ·
Maintainers usually reply within 1 day
-
good first issue maintenance
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
dark-princezz/stellar-hooks#1010 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
interledger/rhyza#352 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day