diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-09-04 02:20:48 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-09-04 02:20:48 +0200 |
| commit | 7a4b905ddb64bdc92b7f9acf2ccde9bd84d7a6f3 (patch) | |
| tree | cc9c7025c2b2d7fc31571b3589ecabcb6f63d8c2 /packages/meshbay-node/src/meshbay_node/roster.py | |
| parent | 5022f2be149e40ac5bdd5fc362e926f3edcf44f0 (diff) | |
| download | meshbay-7a4b905ddb64bdc92b7f9acf2ccde9bd84d7a6f3.tar.gz | |
fix(node): pin utf-8 (and LF) on every text file the node reads or writes
node.toml, the keystore envelope, the unlock key, the loopback UI token,
pairing/invite code files and the denylist were all read and written with
the platform default encoding and newline translation. On Windows that is
cp1252 + CRLF: a node.toml or keystore holding any non-ASCII byte failed to
load, and ops.py's line-based node.toml editor round-tripped CRLF in and
LF out.
Every read is now `encoding="utf-8"`; every write is `encoding="utf-8",
newline="\n"` so the files stay LF whatever the OS. No-op where the locale
was already UTF-8.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/roster.py')
| -rw-r--r-- | packages/meshbay-node/src/meshbay_node/roster.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/roster.py b/packages/meshbay-node/src/meshbay_node/roster.py index a50dd3e..c78281b 100644 --- a/packages/meshbay-node/src/meshbay_node/roster.py +++ b/packages/meshbay-node/src/meshbay_node/roster.py @@ -915,6 +915,6 @@ def write_code_file(data_dir: Path, code: str, expires_at: str, path = data_dir / name path.parent.mkdir(parents=True, exist_ok=True) from meshbay_node.platform import chmod_private - path.write_text(f"{code}\nexpires {expires_at}\n") + path.write_text(f"{code}\nexpires {expires_at}\n", encoding="utf-8", newline="\n") chmod_private(path) return path |