--reconnection-grace-time does not survive closing the browser tab
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 55/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- typescript
Piste de recherche
Commencez par suivre la gestion de pagehide/beforeunload de BrowserLifecycleService et le nettoyage lors du graceful dispose de ManagementConnection. Examinez ensuite le chemin de raccourcissement de connexion de RemoteExtensionHostAgentServer ; le travail est terminé lorsqu’un grace period configuré survit à la fermeture de l’onglet et à une seconde connexion, tandis que les installations utilisant les valeurs par défaut conservent le comportement standard.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Problem
--reconnection-grace-time (added in #7678) is documented as "Override the reconnection grace time in seconds. Clients who disconnect for longer than this duration will need to reload the window."
In practice the setting cannot deliver that, for two independent reasons.
1. Closing the tab bypasses the grace time entirely.
BrowserLifecycleService listens on pagehide/beforeunload and runs the workbench shutdown, which disposes the remote connection gracefully. On the server, ManagementConnection treats a graceful dispose as a finished client:
Event.once(this.protocol.onDidDispose)(() => {
this._log(`The client has disconnected gracefully, so the connection will be disposed.`);
this._cleanResources();
});
_cleanResources() runs immediately — the grace time is never consulted. So closing the tab kills the session regardless of the configured value.
2. A second connection cuts the grace time to 5 minutes.
RemoteExtensionHostAgentServer shortens every disconnected connection on each new connection:
for (const key in this._managementConnections) {
this._managementConnections[key].shortenReconnectionGraceTimeIfNecessary();
}
which schedules ProtocolConstants.ReconnectionShortGraceTime (5 min). Opening a second tab is enough to cut a deliberately long grace time back down.
Impact
The use case the flag exists for — leave a long-running task (a build, a CLI, an agent session) running and come back to it later — does not work. The session is gone as soon as the browser is closed.
Expected
When an operator raises --reconnection-grace-time above the default, a disconnected session should survive for the configured duration, including across a closed browser. Installations that never set the flag should keep Code's stock behaviour.
Environment
Reproduced on code-server 4.128.0 and confirmed present in main (4.133.0 / Code 1.133.0).
- Langage dominant
- TypeScript
- Étoiles
- 79.4k
- Forks
- 6.9k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 39
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de coder/code-server
-
Bump proxy-addr to 2.0.8 Ouvertesecurity
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
coder/code-server#8013 · 4 commentaires ·
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
coder/code-server#7976 · 2 commentaires ·
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
coder/code-server#7962 · 3 commentaires ·
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 42/100
coder/code-server#7948 · 1 commentaire · 2 réactions ·
-
bug code-server needs-investigation
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
coder/code-server#7938 · 3 commentaires · 2 réactions ·
Toutes les issues de coder/code-server
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
copse-dev/agent-pane#2953 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
[Bug]: Matrix progress drafts fail with "Matrix runtime not initialized" during tool activity Ouvertebug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Client support matrix inclusion Ouverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
calcite-components needs triage refactor
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Esri/calcite-design-system#15203 ·