Commit Graph
13 Commits
Author SHA1 Message Date
Dario Lipicar 1a4fa6fc20 doctest: make the bad-bind step outcome-agnostic (#69)
* doctest: make the bad-bind step outcome-agnostic

Asserting status:error relied on the inner call to a missing module
blocking long enough to time out the outer RPC. With faster failure
detection the plain-int typed wrapper returns the type's default and the
outer call reports ok — both surfaces are legitimate, and which one wins
is a platform/timing race (consistently the fast path on Linux since the
transport extraction, still the slow path on macOS). Assert on the
stable part and teach the real contract: bad binds fail at call time;
methods that need caller-visible errors should return result.

* doctest(qml-ui): gate the Modules click on a wait_for

Right after the calculator round-trip the shell is still settling; on a
busy CI runner the Modules entry can take longer than the click action's
retry budget to materialize (flipped red on both platforms in one run,
green the previous hour, identical pins). Same pattern the spec already
uses for the post-launch wait.

* doctest(qml-ui): open Settings before clicking Modules

The Modules entry lives in the Settings left rail; clicking it cold
relied on incidental tree state (passed or failed depending on whether
the entry happened to be materialized). Mirror the basecamp doctests'
proven sequence: click Settings, wait for the view, then click Modules.

* tutorial: demonstrate the CallError out-param on bound interface calls

Generated typed wrappers now take an optional trailing
logos::CallError* — sumVia checks it and returns -1 when the inner call
fails (err.code == "object_unavailable" for a missing module), so the
bad-bind lesson no longer depends on which way the failure-timing race
falls. The doctest assert stays tolerant of the slow-transport
outer-timeout surface.
2026-06-12 23:59:40 -03:00
Dario LipicarandClaude Opus 4.8 30e6478c00 fix(qml-ui): navigate Settings → Modules → Core Modules in basecamp (#68)
basecamp moved its modules view: the old top-level "Modules" sidebar entry
was renamed to "Package Manager", and the UI Modules / Core Modules tabs now
live under Settings → Modules. The Part 2 UI doc-test still clicked a
top-level "Modules", which no longer exists, so the step failed with:

    click("Modules"): No element found with text 'Modules'

Click "Settings" first (and wait for the Settings view to render), then the
now-nested "Modules" sub-tab — mirroring logos-basecamp's own
basecamp-modules doc-test. Prose and the generated outputs/ markdown updated
to "Settings → Modules → Core Modules".

Caught by the logos-workspace nightly doc-test run against the bumped
logos-basecamp commit.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 23:22:16 -03:00
Dario LipicarandClaude Opus 4.8 9a75e048bf Document + verify event introspection in the tutorials (#62)
* Document + verify event introspection in the tutorials

Mirror the per-method documentation coverage for events. The
wrapping-c-library calc_module already emits a versionReady event; give
it a /// doc comment and assert the whole event pipeline end-to-end.

- wrapping-c-library: document the versionReady event; add a 'List
  events' step asserting 'lm events' shows the signature + both
  description lines; assert logoscore module-info's Events section.
- qml-ui-app: rename the basecamp ui_test driver call openMethods ->
  openInterface and assert the event's description renders on the
  Interface screen (basecamp-interface-docs.png).
- Regenerate both tutorial markdowns.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* rerun

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 17:41:23 -03:00
Dario LipicarandClaude Opus 4.8 d85b19c222 Demonstrate & validate method doc comments (wrapping-c-library) (#60)
* demonstrate and validate method doc comments (wrapping-c-library)

Add /// doc comments to the calc module's methods and assert they surface
via `lm methods` (human + --json) and `logoscore module-info`. Corrects the
stale lm output (provider-path introspection lists only impl methods, not
eventResponse/initLogos). Regenerated the tutorial markdown.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* showcase multi-line doc comments in the calc module

factorial uses two /// lines and libVersion uses a /** ... */ block; both
join into a single-line description. Assertions and rendered output updated
to match the joined text.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* preserve multi-line doc comments in the calc module tutorial

factorial/libVersion/libVersionNotify now keep their line breaks in lm and
logoscore module-info output; assertions and rendered markdown updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* use consistent introspection terminology in the tutorial

Refer to "the module's method introspection" throughout instead of mixing the
internal getMethods()/getPluginMethods names. Addresses review feedback on #60.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* verify method docs on basecamp's Methods screen (Part 2 doctest)

Extends the Part 2 basecamp ui_test to open calc_module's Methods screen
(via CoreModulesView.openMethods) and assert each method's description
renders — including factorial's multi-line doc comment. Closes the GUI
surface of the per-method documentation feature in the automated doctest.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* rerun

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 12:39:51 -03:00
Iuri Matias 44e105f1b8 update test so it checks basecamp too 2026-05-29 17:23:02 -04:00
Iuri Matias 62c0f0ad3f update tutorials
update tutorials

fix test
2026-05-29 16:22:44 -04:00
Iuri Matias a32ea8bce4 support screenshots 2026-05-29 15:43:10 -04:00
Iuri Matias 3cae557ba1 fix issue with relying on old github tutorial example 2026-05-29 13:57:10 -04:00
Iuri Matias cc97dba1c6 fix issue with relying on old github tutorial example 2026-05-29 13:31:50 -04:00
Iuri Matias eca8a2f65f add test.yaml for tutorial-cpp-ui-app
fix tests

add test.yaml for tutorial-cpp-ui-app
2026-05-29 09:01:42 -04:00
Iuri Matias 366d2d6f44 add requires directive; updated tests 2026-05-29 09:01:42 -04:00
Iuri Matias 33eb8c9728 support runnign headless and running tests 2026-05-29 09:01:42 -04:00
Iuri Matias 5397a4c1c7 add tests/tutorial-qml-ui-app.test.yaml; add support for ui tests
add tests/tutorial-qml-ui-app.test.yaml

add tests/tutorial-qml-ui-app.test.yaml; add support for ui tests
2026-05-29 09:01:37 -04:00