Release WP (v0.51.635): drop noisy parse-failed note on JSON/YAML fragments (#4858, #484)

Release WP (v0.51.635): drop noisy parse-failed note on JSON/YAML fragments (#4858, #484)
This commit is contained in:
nesquena-hermes 2026-06-24 15:28:30 -07:00 committed by GitHub
commit 87fb8ed9ec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 12 additions and 9 deletions

View file

@ -3,6 +3,12 @@
## [Unreleased]
## [v0.51.635] — 2026-06-24 — Release WP (no more "parse failed" note under JSON/YAML fragments)
### Fixed
- **JSON/YAML code blocks that aren't valid top-level documents no longer show a bare "parse failed" note.** The chat renderer's Tree-view affordance stamped an unstyled `parse failed` line below any fenced block it couldn't `JSON.parse` — but assistants routinely emit fragments (a bare `key: value` line, `…` snippets, trailing commas) that legitimately don't parse, so the note was pure noise under an otherwise-clean code box. Those blocks now fall through silently to the normal syntax-highlighted raw view; the per-block Raw/Tree toggle and the configurable default-view behavior are unchanged. Thanks @metaember. (#4858, #484)
## [v0.51.634] — 2026-06-24 — Release WO (faster profile list — skill stats are cached with an mtime probe)
### Fixed

View file

@ -13636,15 +13636,12 @@ function initTreeViews(container){
// Mark as initialised only after we've committed to a render decision
wrap.setAttribute('data-tree-init','1');
if(!parsed || typeof parsed!=='object'){
if(parseFailed){
const hint=wrap.querySelector('.tree-raw-view');
if(hint&&!hint.querySelector('.tree-parse-note')){
const note=document.createElement('div');
note.className='tree-parse-note';
note.textContent=t('parse_failed_note')||'parse failed';
hint.parentNode.insertBefore(note,hint.nextSibling);
}
}
// No tree view for non-object values or unparseable content. LLMs often
// emit JSON fragments (a bare "key": "val" line, snippets with ..., etc.)
// that legitimately fail JSON.parse; surfacing a "parse failed" note for
// those was pure noise. The block still renders as syntax-highlighted raw,
// so just fall through silently. (parseFailed is retained for clarity.)
void parseFailed;
return; // leave as raw view
}
const lineCount=rawText.split('\n').length;