Skip to content

0.9.1 to 0.9.4: files into the canvas, the handoffs, Summary and Connections, motion - #54

Merged
s4mstruthers merged 7 commits into
spaces-0.9.0from
spaces-0.9.1-to-0.9.4
Oct 10, 2026
Merged

s4mstruthers merged 7 commits into
spaces-0.9.0from
spaces-0.9.1-to-0.9.4

Conversation

@s4mstruthers

Copy link
Copy Markdown
Owner

Slices 2 to 5 of the 0.9 plan, one commit (and one version) each, on top of #53 (0.9.0, the three spaces). Based on spaces-0.9.0 so the diff is these four slices; GitHub retargets it to main once #53 merges.

What you will notice

0.9.1 · Files flow into the canvas

  • An input box names its file on the canvas ("INPUT · boarding.xes").
  • + Add box lists the folder's logs, nets and transition systems under Input, one click each (search finds them too).
  • Drop a file on the canvas and it becomes its input box at that spot. A file from outside the folder keeps its full path.
  • Mine's Open log… and Log from notation… land as boxes on the current analysis, or on a new one named after the file.
  • A page opened from a box (Open as log ›, Open as model, a copy) shows "‹ Back to " above its title.

0.9.2 · The handoffs between Mine and Model

  • Open a copy in Model › (was Edit a copy): the model is named "… (copy)", its header links back ("‹ A copy, from Inductive Miner in …"), the result in the workflow is never changed.
  • A discovered net can be tidied, not changed, on a box's Result: drag places and transitions; the layout is saved with the workflow.
  • Mine a simulated log › (was Export / Generate event log): the log is saved in the folder next to the model and opens in Mine as an analysis with Open log reading it.
  • Check against a log › on a Petri net's Analysis tab: an analysis with Open net, Open log and Check fit, connected and run.

0.9.3 · Summary, the map's detail slider, the Model palette, Connections

  • Canvas | Summary on every analysis: a tile per result in run order, built from the boxes' own results (nothing configured), and the first log's process map with a Detail slider and a legend. A tile opens the box.
  • The Model palette: Select, Place, Transition and Arc in the sidebar for the open net page; the page's own buttons return when the sidebar is hidden.
  • Connections (sidebar, View menu): what flows in, OpenProcess and its boxes, what flows out, and the optional tools with whether each is installed, all read from the box library.

0.9.4 · Motion

  • A space switch, the side panel and Canvas ↔ Summary settle under a short veil; a box pulses once when it finishes; + Add box fades in. OPENPROCESS_NO_MOTION=1 turns it off.

Also fixed

  • A box added while a run was in progress was queued as "run everything", which then counted as nothing queued, so it never ran.
  • The GUI tests' pump now drains due timers after its wait, which made two editor tests flaky under load.

Verification

  • Whole suite: 374 passed, 3 skipped. New tests cover every behaviour above, the handoffs end to end.
  • A scripted offscreen drive of every page (all templates, picker, drops, every settings list, Open as log/model/copy and Back, both net editors in every mode and inspector tab, the simulated-log and check-against-log paths, Learn, sidebar toggles, close and reopen the folder) produced no Qt warnings and no slot exceptions.
  • Not verified offscreen: how the veils and the pulse feel on screen, and real-mouse dragging of a result net's places.

🤖 Generated with Claude Code

s4mstruthers and others added 7 commits October 10, 2026 21:42
An input box names its file on the canvas ("INPUT · boarding.xes"). The
folder's logs, nets and transition systems are listed under Input in
+ Add box, one click each, and a file dropped on the canvas becomes its
input box at that spot. Mine's Open log… and Log from notation… land as
boxes on the current analysis (or a new one named after the file). A page
opened from a box's result shows "‹ Back to <analysis>" above its title.

Also fixed: a box added while a run was in progress was queued as "run
everything", which then counted as nothing queued, so it never ran.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Open a copy in Model (was Edit a copy): the model is named "(copy)", its
header links back ("A copy, from Inductive Miner in …") and the result in
the workflow is never changed. A discovered net can be tidied in Mine by
dragging its places and transitions; the layout is kept with the box and
the net itself is untouched. Mine a simulated log (was Export / Generate
event log) saves the log in the folder next to the model and opens Mine on
a new analysis reading it. Check against a log on a Petri net builds an
analysis with Open net, Open log and Check fit, connected and run.

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

Canvas | Summary on every analysis: a tile per result in run order, built
from the boxes' own results, and the first log's process map with a Detail
slider and a legend. In Model, a net page's Select, Place, Transition and
Arc sit in the sidebar as a palette (the page's own buttons return when the
sidebar is hidden). Connections, at the bottom of the sidebar and in the
View menu, draws what flows in, OpenProcess and its boxes, what flows out,
and the optional tools with whether each is installed, all read from the
box library.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A space switch, the side panel and Canvas ↔ Summary lift a short veil so
the change settles rather than snaps; a box pulses once when it finishes;
+ Add box fades in. OPENPROCESS_NO_MOTION=1 turns it all off.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… fits, the README covers 0.9.1 to 0.9.4

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Zoomed out, the arrow's hit zone (14 screen pixels, in scene units) could
reach a neighbouring node, so moving the mouse onto that node kept the
arrow hot instead of hiding it. Seen on CI, where the view fits a smaller
screen; the node now wins before the arrow's hit test.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The studio's log page no longer discovers models on the spot: Discover
hands the log to an analysis in Mine, with the miner connected and run,
its How and Code a click away (Learn keeps the inline miners for its
exercises). The model page's conformance is the same handoff. Every card
a page computes on its own (process map, footprint, soundness, invariants,
state space, regions) has a { } code link to the function. The Summary
says what it is and shows only the boxes' results: its process map is the
Directly-follows graph box's, offered in one click when missing. A tool
that is not installed can be installed from Connections.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@s4mstruthers
s4mstruthers merged commit 38fa550 into spaces-0.9.0 Oct 10, 2026
6 checks passed
@s4mstruthers
s4mstruthers deleted the spaces-0.9.1-to-0.9.4 branch October 10, 2026 20:54
s4mstruthers added a commit that referenced this pull request Oct 10, 2026
…e window (#53)

* 0.9.0: three spaces, Mine, Model and Learn, switched at the top of the window

Process mining and net modelling no longer share a sidebar. A switcher at
the top of the window (in the title bar on macOS) picks Mine, Model or
Learn. Mine lists the folder's analyses with its logs folded under them;
Model lists its models; Learn is the exercise view as before, reached from
the switcher too. A document opens in its own space, each space remembers
its current document, and the folder remembers which space was open. The
Folders / By kind toggle and the one-list-of-everything headings are gone.
Subfolders stay inside each list; an empty folder shows in both spaces;
an exercise's materials belong to Learn.

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

* Spaces: flat lists under subfolder captions, LOGS folds on click, no exercises in Mine

The per-space folder trees made the sidebar look different in each space.
Each list is now flat: the folder's own files first, then each subfolder's
under a small caption naming it, the same rule in Mine and Model. Only the
LOGS heading folds, with a chevron, on a single click; its state is kept per
folder. Exercises are Learn's and no longer listed in Mine. A folder shows
without files only when there is nothing in it at all. The switcher is a
plain bar under the title, since the unified title bar did not take on macOS.

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

* The file setting's Choose… button stays in view in a folder with long paths

The file field sized itself to its longest entry, so a folder with long
paths pushed the button and the panel's text past the panel's edge. It is
now sized by the panel.

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

* The file setting's list can be used: opening it no longer re-runs the box

Opening the list took the focus from the field, which counted as "editing
finished" and reported the unchanged value; 400 ms later the box re-ran and
the panel was rebuilt under the open list, so nothing could be picked. The
field now reports only a real change, and the page runs nothing when a
setting is set to the value it already had.

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

* Combo lists are sized before they open; the file list shows names

Widening a combo box's list once it was showing made macOS flicker and
close it, so a list with long entries (the file setting, with the folder's
paths) could not be used. The list is now sized when the box is pressed,
before it opens; on macOS the open popup is left alone. The file list shows
file names, with the subfolder only when two names clash, and holds the
relative path behind each entry.

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

* A file box lists only the files it can read

The kinds come from what the box gives: a Log means event logs, a Petri net
PNML, a coloured net .cpn, a transition system ts.txt. Nothing for a box
author to declare. The Choose… dialog filters the same way.

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

* 0.9.1 to 0.9.4: files into the canvas, the handoffs, Summary and Connections, motion (#54)

* 0.9.1: files flow into the canvas

An input box names its file on the canvas ("INPUT · boarding.xes"). The
folder's logs, nets and transition systems are listed under Input in
+ Add box, one click each, and a file dropped on the canvas becomes its
input box at that spot. Mine's Open log… and Log from notation… land as
boxes on the current analysis (or a new one named after the file). A page
opened from a box's result shows "‹ Back to <analysis>" above its title.

Also fixed: a box added while a run was in progress was queued as "run
everything", which then counted as nothing queued, so it never ran.

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

* 0.9.2: the handoffs between Mine and Model

Open a copy in Model (was Edit a copy): the model is named "(copy)", its
header links back ("A copy, from Inductive Miner in …") and the result in
the workflow is never changed. A discovered net can be tidied in Mine by
dragging its places and transitions; the layout is kept with the box and
the net itself is untouched. Mine a simulated log (was Export / Generate
event log) saves the log in the folder next to the model and opens Mine on
a new analysis reading it. Check against a log on a Petri net builds an
analysis with Open net, Open log and Check fit, connected and run.

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

* 0.9.3: Summary, the process map's detail slider, the Model palette, Connections

Canvas | Summary on every analysis: a tile per result in run order, built
from the boxes' own results, and the first log's process map with a Detail
slider and a legend. In Model, a net page's Select, Place, Transition and
Arc sit in the sidebar as a palette (the page's own buttons return when the
sidebar is hidden). Connections, at the bottom of the sidebar and in the
View menu, draws what flows in, OpenProcess and its boxes, what flows out,
and the optional tools with whether each is installed, all read from the
box library.

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

* 0.9.4: motion

A space switch, the side panel and Canvas ↔ Summary lift a short veil so
the change settles rather than snaps; a box pulses once when it finishes;
+ Add box fades in. OPENPROCESS_NO_MOTION=1 turns it all off.

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

* Review pass: the picker's file rows get icons, the Summary's map info fits, the README covers 0.9.1 to 0.9.4

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

* Over a node, the arc arrow always gives way, whatever the zoom

Zoomed out, the arrow's hit zone (14 screen pixels, in scene units) could
reach a neighbouring node, so moving the mouse onto that node kept the
arrow hot instead of hiding it. Seen on CI, where the view fits a smaller
screen; the node now wins before the arrow's hit test.

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

* 0.9.5: nothing in the app is a black box

The studio's log page no longer discovers models on the spot: Discover
hands the log to an analysis in Mine, with the miner connected and run,
its How and Code a click away (Learn keeps the inline miners for its
exercises). The model page's conformance is the same handoff. Every card
a page computes on its own (process map, footprint, soundness, invariants,
state space, regions) has a { } code link to the function. The Summary
says what it is and shows only the boxes' results: its process map is the
Directly-follows graph box's, offered in one click when missing. A tool
that is not installed can be installed from Connections.

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

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
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