Skip to content

[pull] master from GaijinEntertainment:master#979

Merged
pull[bot] merged 6 commits into
forksnd:masterfrom
GaijinEntertainment:master
May 10, 2026
Merged

[pull] master from GaijinEntertainment:master#979
pull[bot] merged 6 commits into
forksnd:masterfrom
GaijinEntertainment:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented May 10, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

borisbat and others added 6 commits May 10, 2026 07:17
The card warned that struct field defaults silently fail to fire on
[widget] auto-emitted globals. Fixed upstream in dasImgui commit 111f7dc
(bbatkin/dasimgui-widget-auto-init) — the macro now emits
`var IDENT : T = T()` so the default constructor runs.

Card's primary teaching is wrong post-fix; deleting beats updating to
avoid future search hits surfacing obsolete advice.
…ui phase 0b.3 cards

`daslib/delegate.das` — promote `struct template DelegateReturn` to
`struct template public` so callers in other modules can instantiate the
non-void-return template (the void variant `Delegate` was already public;
the asymmetry was a copy-paste oversight).

Mouse cards (dasImgui Phase 0b.3 — containers + hierarchical path keys
session): four Q&A entries captured during the [container] annotation
implementation:

  - dasimgui-container-annotation-and-hierarchical-path-keys
    — How [container] differs from [widget]: same widget_ident injection
      and auto-emit gate, plus container_path_push/pop wrapping the body
      so leaf children get hierarchical registry keys (MAIN/CHILD/LEAF).
  - daslang-block-last-arg-blocks-default-arg-fill
    — `def foo(a, b=def, blk : block)` does NOT auto-shift defaults so
      BLOCK lands in slot 2; positional resolution is left-to-right and
      BLOCK collides with b. Workaround: drop defaults on per-call config
      for [container] defs, supply via the named-tuple at the call site.
  - daslib-json-optional-bool-omitted-when-false-snapshot-test-impact
    — `@optional bool : opened` is OMITTED from the JSON envelope when
      false; `wait_for_bool_value(target, "opened", false)` never fires.
      Switch the assertion to leaf-disappearance instead — also a more
      meaningful UI signal for closed-tree visibility.
  - imgui-closable-window-skip-begin-when-closed-not-call-with-pfalse
    — ImGui's contract: stop calling Begin once `*p_open` flips to false.
      Calling Begin with `*p_open=false` does NOT reliably suppress the
      body — leaves render at least one extra frame. dasImgui's `window`
      / `tab_item` containers gate the entire Begin/End on `state.open`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… `= ""`

Replacement for the deleted `dasimgui-widget-auto-emit-skips-struct-field-defaults`
card with the post-fix answer (defaults DO fire), pointing to the canonical
test under `modules/dasImgui/tests/integration/test_widget_init_defaults.das`
and listing what the post-0b state struct sweep changed (capacity=256,
combo/list value=-1, window/tab open=true).

Edited the error-31014 string-field card to lead with `@live value : string = ""`
as the primary recommendation; demoted `@safe_when_uninitialized` to the
"genuinely-want-null-pointer" alternative. Removed the stale companion gotcha
about numeric defaults not firing; replaced with a forward link to the new card.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…perf017-and-dasimgui-mouse-cards

daslib(delegate): public DelegateReturn template + dasImgui phase 0b.3 mouse cards
  - setup_call_list per-module [init] accumulator pattern (decs_boost
    precedent)
  - [init] vs [init, lateInit]: lateInit is sort-order only; both
    re-fire on hot-reload via runInitScript
  - JV(float2) serializes as {x, y} object, NOT [x, y] array (vs tuple
    which serializes as {_0, _1})
  - GetScrollMaxX/Y must be read AFTER invoke(blk) populates content;
    reading before returns 0
  - require X public re-exports symbols transitively — used to expose
    daslib/json_boost::JV from imgui_boost_runtime to user modules
  - dasImgui Phase 1: widget_exists (registered) vs widget_rendered
    (painting) — semantic split with the daslib/json ?[] quirk
  - Skip text-input cursor / selection telemetry — public API too
    limited; imgui_test_engine reads via Ctrl+A/Ctrl+C/clipboard, no
    direct InputTextState access
- New skills/mouse.md: practitioner manual behind the MOUSE FIRST rule
  (triggers, asking, adding, editing, carve-outs, dupe-on-add gate).
  Bakes in two telemetry-derived lessons: skip the meta-ask
  ("when-to-consult-mouse" was the #1 hit by 2x and almost all noise);
  symbol-shaped misses go to daslang MCP, not new cards.
- CLAUDE.md: trim "Asking blind-mouse" prose (operational detail moved
  to the skill); add skills-table row.
- install/CLAUDE.md: skills-table row, add utils/mouse/ to SDK Directory
  Layout, add "Personal Q&A Cache (blind-mouse)" section parallel to the
  MCP Server one.
- install/skills.list: add mouse.md (alphabetical).
- No CMake changes — skills.list is read dynamically via file(STRINGS).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators May 10, 2026
@pull pull Bot added the ⤵️ pull label May 10, 2026
@pull pull Bot merged commit 457ab9b into forksnd:master May 10, 2026
1 of 5 checks passed
@pull pull Bot had a problem deploying to github-pages May 10, 2026 20:58 Error
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant