informedica / informedica/GenPRES

feat(api): tell an open tab that the server changed, and offer a reload

Open
#682 0 comments 0 reactions 1 assignee View on GitHub

@halcwb is already working on this.

Since Sep 16, 2026.

enhancement
Dominant language
F#
Stars
47
Forks
12
Avg merge
4h 51m
Merged PRs (30d)
285

Description

Is your feature request related to a problem? Please describe.

The client and the server share one contract, so a wire change fails at compile time, never at runtime, as long as both run the same build. A browser tab that stays open across a deployment does not: it keeps the previous bundle and sends the previous commands. The server then refuses the call as it cannot read it, the page shows the general error, and only a reload puts the tab on the new bundle (the server's Cache-Control on index.html sees to that). Nothing tells the User that a reload is what is needed. Every step of plan 667 changed the wire in this way (the plan's fields, the signed version's content, the command names); so did plan 654. Raised in review of #681.

Describe the solution you'd like

A version the client learns at start-up and the server names on every reply, or on a refusal it cannot read: ServerSettings gains the build's version, every Reply carries it or a refusal names it, and the client, on a mismatch, tells the User once that the application was updated and offers the reload; a computing call that fails to deserialize is treated the same. No compatibility handlers for old commands: one server, one client, the tab reloads.

Describe alternatives you've considered

  • Keeping old command shapes alive on the server for a deployment window. Rejected: two contracts to test for every change, in a medical device where the contract is the safety boundary.
  • Reloading silently on a mismatch. Rejected: a half-entered prescription would be lost without a word.

Additional context

The version to compare exists already: Directory.Build.props is the one source, checked by CheckVersions, and the Docker image is labelled with it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Q228qLAaCzuK9Bhq2pEBGc

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.