Cleared legacy TOML settings reappear after restart

Ouverte
#182 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
65/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
typescript
Domaine
backend, cli

Piste de recherche

Look at the TOML write path in the settings manager, likely in a file like src/settings/manager.ts. The issue mentions a merge behavior that resurrects cleared nested tables. Start by running the core settings tests to reproduce the bug. Examine how setStepSettings handles undefined and how the TOML serialization merges with the original document. The fix should ensure cleared settings are not written back to disk.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

area/config bug
What happened?

Clearing a nested legacy setting from config.toml updates the in-memory settings, but the old value is written back to disk and returns after reload/restart.

For example, [feedback] enabled = false becomes cleared in the current manager after setStepSettings({ feedbackEnabled: undefined }), but a new manager reads feedbackEnabled: false again. The TOML write path merges the original document back over the cleared state, which resurrects the removed nested table.

I reproduced this on clean main @ adcf37b in the core settings tests, without external extensions. I have a local fix and regression test ready and would like to submit a PR if this direction looks good.

Steps to reproduce
  1. Put this in config.toml:
    [feedback]
    enabled = false
    
  2. Start/load Step settings and confirm feedbackEnabled is false.
  3. Call setStepSettings({ feedbackEnabled: undefined }).
  4. Confirm the current manager now reports the setting as absent.
  5. Reload the settings or restart Step.
  6. feedbackEnabled: false appears again.
Expected behavior

Cleared legacy TOML settings should stay removed after reload/restart, while unrelated TOML fields and mcp_servers remain intact.

Version

main @ adcf37b / @step-harness/coding-agent 0.84.4

Langage dominant
TypeScript
Étoiles
1k
Forks
71
Merge moyen
13 h 14 min
PR mergées (30 j)
66

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de stepfun-ai/Step-Code

Toutes les issues de stepfun-ai/Step-Code

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.