Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Session migration can truncate history if rewrite is interrupted

Ouverte
#145 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
70/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
node.js, typescript
Domaine
backend, cli, tooling

Piste de recherche

The issue is in packages/coding-agent/src/core/session-manager.ts around line 980. Look at the _rewriteFile() method and the openSync call with mode 'w'. Understand the session migration flow in SessionManager._setSessionFile(). Research Node.js atomic write patterns, like the linked write-file-atomic library. A fix involves writing to a temporary file first, then renaming it over the original on success. Test by creating a v1/v2 session file and simulating an interruption during migration.

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

Description

untriaged
What happened?

Opening a v1/v2 session migrates it and rewrites the same JSONL file. _rewriteFile() opens the original with "w", truncating it before writing entries back. If the process or write fails during migration, previously saved history can be left truncated. This is the path in SessionManager._setSessionFile() on current main.

Steps to reproduce
  1. Open an existing v1/v2 session with enough entries to make migration observable.
  2. Interrupt the process after _rewriteFile() opens the original file and before it finishes writing.
  3. Reopen the session: the original file contains only the prefix written before interruption.

This follows directly from openSync(this.sessionFile, "w") in session-manager.ts. I have not observed a production incident.

Expected behavior

Build the complete migrated file in a unique sibling temporary file, flush and close it, then rename it over the original. Keep the original on any error. Node's atomic-write implementation uses this pattern.

Version

main @ cb5fc1456d49d49c62e072bfed2926220083214e

AI-assisted report; source path checked against the stated commit.

Langage dominant
TypeScript
Étoiles
1k
Forks
68
Merge moyen
23 h 51 min
PR mergées (30 j)
65

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.