Skip to content

Hints out of the hover by setting, and a usage log of the view for user studies - #201

Merged
CatarinaGamboa merged 3 commits into
mainfrom
study/usage-log
Nov 12, 2026
Merged

CatarinaGamboa merged 3 commits into
mainfrom
study/usage-log

Conversation

@CatarinaGamboa

@CatarinaGamboa CatarinaGamboa commented Nov 11, 2026 •

Copy link
Copy Markdown
Collaborator

For the error-message study (liquidjava-study-env). Two settings, both off by default so nothing changes for other users.

What changes

  • liquidjava.hover.showHints (default true). Off: the editor hover leaves the hints out and ends with Hints: in the LiquidJava view (Hints, under the error). The view already renders the hints closed (<details>), so with the setting off a participant sees a hint only by opening it. Decided with the PM on 2026-11-12: keep the hints, start them closed, let the person open them.

  • liquidjava.usageLog (default empty): the path of a JSON Lines file to which the extension appends what is used in the view, one line per use with the time:

    event when fields
    tab a tab is switched tab: diagnostics, fsm, context
    hints the Hints section is opened or closed open, error (the diagnostic's key)
    found-step a Found step arrow direction, error
    location a location in the view is clicked file, line, character
    state-machine Show in state machine, in the view or the code lens from: view or code-lens
    show-view the error's title code lens file, line
    state-error-step, reveal, context, context-section, scope, diagram, copy the other controls as named

    The webview posts a usage message for each; services/usage-log.ts writes it. A write failure goes to the LiquidJava output channel only. utils/usage-log.ts is the pure part, with its own spec.

Tests

npm run test:unit: 149 tests pass, three new (the hover without hints; the tab and hints usage messages; the log lines). The exact-messages assertion of the tab test now lists the usage messages too. Lint and webpack clean.

Screenshots

Headless VS Code (openvscode 1.109), the study's practice file, liquidjava.hover.showHints off. The hover ends with the pointer to the view; in the view the Hint is closed until clicked.

the hover without hints

the view with the hint opened

Study side

liquidjava-study-env sets both in the redesign instance's workspace settings (liquidjava.hover.showHints: false, liquidjava.usageLog: logs/<P>/<X>/liquidjava-usage.jsonl) and its export counts the uses per task. The baseline branch ignores both settings.

🤖 Generated with Claude Code

CatarinaGamboa and others added 2 commits November 11, 2026 23:35
…er studies

Two settings:
- liquidjava.hover.showHints (default true). Off: the editor hover leaves the hints out and says
  they are in the LiquidJava view, where they stay closed until opened.
- liquidjava.usageLog (default empty): a JSON Lines file to which the extension appends what is
  used in the view: tab switches, hints opened or closed, Found steps, locations, the state
  machine (from the view or the code lens), the Verification/Context reveal buttons, the
  diagnostics scope, the diagram options and copies. One line per use, with the time.

The webview posts a usage message for each of these; services/usage-log.ts writes it, and the
openFile message of a location click is logged as location. Nothing is written when the setting is
empty, and a write failure goes to the LiquidJava output channel only.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… keyed, write asynchronously in order

A render of an open <details> fires toggle too (Codex review). The writes are chained promises,
so a slow disk never stalls the extension host. The documented event list no longer names zoom,
which is not instrumented.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@CatarinaGamboa

Copy link
Copy Markdown
Collaborator Author

Codex review (read-only, on the diff against main), three findings, all applied in 4bb0d41:

  1. A render of an open <details> fires toggle too, so an opened hint drawn again after a save would have counted as opened again. Now a toggle counts only right after the summary was clicked or keyed (hintToggleByUser), with a test that a bare toggle logs nothing and a clicked one does.
  2. zoom was listed in the event doc but not instrumented. Removed from the list; context-section added, which is.
  3. Synchronous writes on the extension host. The writes are now chained promises (fs.promises.appendFile), asynchronous and in order.

Also in 8ee51bd: a tab click that lands on the badge inside the tab (the error count) now switches the tab; before, it did nothing, which the study's walk showed as a Verification tab click that never registered.

🤖 Generated with Claude Code

@CatarinaGamboa
CatarinaGamboa merged commit bdc30fe into main Nov 12, 2026
3 checks passed
@CatarinaGamboa CatarinaGamboa mentioned this pull request Nov 12, 2026
CatarinaGamboa added a commit that referenced this pull request Nov 12, 2026
Version 0.1.1: 0.1.0 plus #201 (hints out of the hover by setting, and a
usage log of the view for user studies). The tag `v0.1.1` on the merge
commit publishes it (publish.yml).

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant