Three tools capped the preview text they return with String.prototype.slice at a UTF-16 code-unit budget. A cut that lands inside a surrogate pair leaves a lone high surrogate, which is not well-formed text: a strict JSON reader rejects the durable Session log carrying it, and the preview shows a broken glyph. A lone surrogate retained in history has already blocked every later Messages request for one session. Centralize the cap in output-retention as truncateWithoutSplittingSurrogatePair, and use it from the persistent bash and pwsh shells and the string-replace editor. The cut drops the unpaired half instead of keeping it, so the retained text stays a prefix and is at most one code unit shorter than before. The new dependency edges and the shifted Config sources regenerate docs/module-graph and docs/config-catalog, including the committed translation pair. Refs #4817
18 lines
456 B
JSON
18 lines
456 B
JSON
{
|
|
"extends": "../../../tsconfig.base.json",
|
|
"compilerOptions": {
|
|
"rootDir": "src",
|
|
"outDir": "lib/types"
|
|
},
|
|
"include": ["src"],
|
|
"references": [
|
|
{ "path": "../../../vendor/cordis" },
|
|
{ "path": "../../../vendor/schemastery" },
|
|
{ "path": "../../util/output-retention" },
|
|
{ "path": "../../core/agent" },
|
|
{ "path": "../../core/tools" },
|
|
{ "path": "../../terminal/terminal" },
|
|
{ "path": "../../util/timeout" }
|
|
]
|
|
}
|