Skip to content

Commit 5926e42

Browse files
committed
docs: add ] to the gchat link-label non-parity row
1ce9cbf extended the reserved-char fallback to include `]`; keep the UPSTREAM_SYNC.md table accurate for the next sync. https://claude.ai/code/session_01XE1bMoQ5BjCvgi1iLGKKhG
1 parent 1ce9cbf commit 5926e42

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

docs/UPSTREAM_SYNC.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@ stay explicit instead of being rediscovered in code review.
446446
| Fallback streaming with whitespace-only streams | Placeholder cleared to `" "` on final edit | Placeholder left visible (`"..."` stuck) | Upstream 4.26 guards against empty edits but leaves the placeholder stranded on the message. We issue one final `edit_message(" ")` so the placeholder disappears when no real content was produced. |
447447
| Google Chat `<url\|text>` round-trip | `to_ast()` / `extract_plain_text()` parse the custom-label syntax back to a link node / bare label | `toAst()` / `extractPlainText()` leave `<url\|text>` as raw text | Upstream 4.26 emits `<url\|text>` in `from_ast` but never taught the reverse direction to parse it. A message posted with `[label](url)` then read back through `fetch_messages` comes back as unstructured text with no link node. We close the round-trip. |
448448
| `from_json(data, adapter=X)``_adapter_name` | Updated to `X.name` so `to_json()` reflects the bound adapter | Kept at `json.adapterName`, so re-serialization can emit a name that no longer matches the actual adapter | Upstream TS has the same gap but only exposes it via the `fromJSON(json, adapter?)` overload. In Python we lean on this API more (explicit `chat=` / explicit `adapter=` is preferred over the singleton). We sync the name on rebind so runtime and serialize agree. |
449-
| Google Chat link labels with `\|` / `>` / newline | Fall back to `text (url)` when the label contains reserved delimiters | Always `<url\|text>`, producing malformed output | Google Chat's `<url\|text>` has no escape for `\|` or `>`; emitting either character truncates the label on the platform and breaks our own round-trip regexes. Upstream emits the malformed form; we fall back to the pre-4.26 `text (url)` form in that narrow case so the label stays intact and the URL still auto-links. |
449+
| Google Chat link labels with `\|` / `>` / `]` / newline | Fall back to `text (url)` when the label contains reserved delimiters | Always `<url\|text>`, producing malformed output | Google Chat's `<url\|text>` has no escape for `\|` or `>`; `]` breaks our own `to_ast()` regex (which converts `<url\|text>` to Markdown `[text](url)`, and Markdown closes the label at the first `]`); newline breaks the single-line form. Upstream emits the malformed form regardless; we fall back to the pre-4.26 `text (url)` form in those narrow cases so the label stays intact and the URL still auto-links. |
450450

451451
### Platform-specific gaps
452452

0 commit comments

Comments
 (0)