You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AGENTS.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,3 +8,12 @@
8
8
- When adding a new runtime dependency to `packages/lsp-server/package.json`, also review `packages/lsp-server/tsup.config.ts`.
9
9
- If the dependency is imported by the server runtime code, add it to `nodeConfig.noExternal` unless there is a clear reason to keep it external.
10
10
- Reason: `packages/lsp-server/scripts/prepare-client-assets.js` copies built server artifacts into `lsp-client`; required runtime dependencies should be bundled to avoid missing module errors at extension runtime.
11
+
12
+
## Playground Browser Testing Notes
13
+
- When editing files inside the VSCode Web playground, prefer whole-file replacement (`focus editor -> Select All -> type/paste full content`) over partial line edits.
14
+
- Reason: editor language features (auto-indent, snippet/format behaviors, newline handling) can introduce unintended indentation or syntax changes during incremental typing.
15
+
- Always verify editor focus before typing. VSCode Web frequently shifts focus to the command palette, Problems panel, diff editors, or other UI panels.
16
+
- Prefer minimizing the repro fixture (for example, reduce `main.bean` includes to only the files under test) to reduce noise and focus-switch count.
17
+
- After browser automation edits, verify actual file contents before trusting diagnostics. Useful pattern: add/call debug commands that copy active file content or a project snapshot.
18
+
- Be careful when using command palette automation: fuzzy search can select similarly named commands (for example compare-with-clipboard flows) and open diff editors unexpectedly.
19
+
- If a syntax error appears immediately after automated typing, first suspect accidental auto-indent / misplaced whitespace from editor input rather than parser/runtime incompatibility.
Copy file name to clipboardExpand all lines: docs/specs/beancount-lsp-p0-correctness-implementation-summary-2026-02-25.md
+94Lines changed: 94 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -258,6 +258,100 @@ Changes:
258
258
- Reused shared config loading in both initial registration and config-changed path
259
259
- Reworked `mergeAndDedupDiagnostics()` key to include:
260
260
- start/end range
261
+
262
+
## G. Post-Implementation Follow-up (2026-02-26)
263
+
264
+
### G1. Root-name option changes now trigger diagnostics revalidation
265
+
266
+
Problem observed in playground regression:
267
+
268
+
- Editing `main.bean` to add/remove `option "name_assets"` (and related root-name options) updated effective options correctly, but existing diagnostics in other open files could remain stale until another trigger.
-`Invalid reference to unknown account '...'` (chained noise)
302
+
- Shows a one-time warning that browser WASM diagnostics were partially suppressed and local Python runtime is authoritative.
303
+
304
+
Observed effect in playground:
305
+
306
+
- Russian custom roots (`Активы / Пассивы / Капитал / Доходы / Расходы`) can be used in `open` directives and transactions without beancheck noise flooding the Problems panel (browser WASM mode).
307
+
308
+
### G3. Diagnostics source labeling and message language normalization
309
+
310
+
Problem observed:
311
+
312
+
- It was hard to distinguish which diagnostics came from local LSP checks vs runtime beancheck.
313
+
- Root account local validation message was emitted in Chinese while surrounding diagnostics were otherwise English-first.
constmessage='Browser Beancount WASM runtime may not fully support custom non-ASCII root account names. Diagnostics were partially suppressed; switch to Local (Python) runtime for authoritative checks.';
0 commit comments