Skip to content

JetBrains chat reads as a conversation (0.5.0) - #18

Merged
rahulmahadik merged 1 commit into
mainfrom
develop
Aug 8, 2026
Merged

JetBrains chat reads as a conversation (0.5.0)#18
rahulmahadik merged 1 commit into
mainfrom
develop

Conversation

@rahulmahadik

Copy link
Copy Markdown
Owner

JetBrains plugin 0.5.0. Builds on 0.4.2, which is a separate tag.

Reported

  • Both roles rendered on the left, so a question and its answer read as one block.
  • A query inside a prose answer was ordinary text: no code formatting, no copy.
  • Copy existed only on result grids, not on explanations or schema answers.
  • Several states showed no progress at all, so a turn could sit blank.
  • Explain gave no feedback, and stayed disabled for the rest of the turn if it failed.

Changed

Question on the right in a tinted bubble, answer on the left, a rule between turns, a copy control
under every answer. Fenced blocks become real code blocks with their own Copy, bounded in height and
capped in number since each is an editor on the EDT. Progress covers preparing a turn, answering from
the schema, and correcting a rejected query, with stage wording that follows the engine so a pipeline
is never called SQL. Explain carries its own in-flight state and returns after a failure.

Two defects found while building it: a wrapping answer was measured at its unwrapped width, so the
last line was painted over by the note below it; and content appended to a turn already on screen was
unreachable. Appended content now scrolls into view, but only when the transcript is already at the
bottom, so it will not pull you off an earlier turn.

Also here, from the deferred list: connections close through service disposal rather than an
experimental platform listener (which also woke both registries on every project close), the guard
reads LIMIT ALL through JSqlParser's supported API rather than two deprecated methods, and the
integration CI job reads the Gradle cache instead of writing a second copy.

Tests

Render tests paint a turn to a PNG and assert geometry inside each pane's own bounds, so ink from a
neighbouring component cannot satisfy an assertion about a different one. Three earlier versions of
these assertions could not fail and were rewritten. They are opt-in via -PrenderUi=true, which needs
real font metrics and a window peer, so a headless runner reports them as not run rather than green.

Unit 559 passing. Integration ran against live Postgres, MySQL, Oracle and MongoDB: 111 tests, 0
failures, 0 skipped. Plugin Verifier reports Compatible with zero experimental usages.

Docs

settings-ollama.png was deleted but still linked, so the listing had a broken image. The README now
points at the current settings screenshots and adds the chart and add-connection shots. Corrected a
claim that nothing is written to disk except settings: downloaded JDBC drivers, the sample dataset and
uploaded files each write under the IDE system path.

The transcript put both roles on the left, offered a copy control only on
result grids, and rendered a query inside a prose answer as ordinary text.
Several states showed no progress at all, and a MongoDB turn was told it was
writing SQL.

- Question on the right in a tinted bubble, answer on the left, a rule
  between turns, and a copy control under every answer.
- A fenced block becomes a real code block with its own Copy. Blocks are
  bounded in height and capped in number, since each is an editor on the EDT.
- Progress covers preparing a turn, answering from the schema, and correcting
  a rejected query. Stage wording follows the engine, so a pipeline is never
  described as SQL.
- Explain carries its own in-flight state and returns after a failure.
- A wrapping answer keeps the height of every line it wrapped to; it was
  measured at its unwrapped width, so the last line was painted over.
- Appended content scrolls into view only when the transcript is already at
  the bottom.
- A Mongo collection name is selectable and travels with Copy as a mongosh
  call.

Also here: connections close through service disposal rather than an
experimental platform listener, the guard reads LIMIT ALL through JSqlParser's
supported API, and the integration CI job reads the Gradle cache instead of
writing a second copy.

Render tests paint a turn to a PNG and assert the geometry inside each pane,
so ink from a neighbour cannot stand in for the component under test. They are
opt-in via -PrenderUi=true, which needs font metrics and a window peer.
@rahulmahadik
rahulmahadik merged commit c75d967 into main Aug 8, 2026
15 checks passed
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