<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guess-market/ui-desktop/src/main/java/market, branch 2.0</title>
<subtitle>definitely not polymarket
</subtitle>
<id>https://git.sartin.in/guess-market/atom?h=2.0</id>
<link rel='self' href='https://git.sartin.in/guess-market/atom?h=2.0'/>
<link rel='alternate' type='text/html' href='https://git.sartin.in/guess-market/'/>
<updated>2026-09-09T07:05:12Z</updated>
<entry>
<title>ui-desktop: build the JavaFX market UI on top of the service</title>
<updated>2026-09-09T07:05:12Z</updated>
<author>
<name>Kostya</name>
<email>mail@sartin.in</email>
</author>
<published>2026-09-09T07:05:12Z</published>
<link rel='alternate' type='text/html' href='https://git.sartin.in/guess-market/commit/?id=f23c20c1c66b39fb1f49307e08e8593fa708e026'/>
<id>urn:sha1:f23c20c1c66b39fb1f49307e08e8593fa708e026</id>
<content type='text'>
Replace the placeholder hello-world window with a working desktop
client for the guess market.

ServiceEngine wires the in-memory repositories, XML loader, risk,
matching, fulfillment and settlement contexts together, and AppState
exposes their results as observable JavaFX state for the views to bind
to. The FXML views have an events tab and a users tab. The events tab
lists events with mechanism and commission filters, and shows each
event's price chart, order book ladder, trade history and participants.
The users tab shows each user's ledger and positions, and lets them
place buy and sell orders. Dialogs cover loading an XML file (in a
background task), creating an event and resolving one.

Bundle a CSS theme and Nerd Font faces so the UI looks the same on
every machine. Teach build.sh to copy each module's src/main/resources
into its class output, since FXML, CSS and fonts are loaded from the
classpath at runtime.
</content>
</entry>
<entry>
<title>flatten modules to repo root, vendor deps, repair Eclipse build paths</title>
<updated>2026-08-09T11:46:25Z</updated>
<author>
<name>Kostya</name>
<email>mail@sartin.in</email>
</author>
<published>2026-08-09T11:46:25Z</published>
<link rel='alternate' type='text/html' href='https://git.sartin.in/guess-market/commit/?id=34deee1c5ef2df5ba2514f77ec4dfd4a684a9d13'/>
<id>urn:sha1:34deee1c5ef2df5ba2514f77ec4dfd4a684a9d13</id>
<content type='text'>
Move api, engine, ui-console and ui-desktop out of modules/ up to the
repo root and drop the empty exception project (GuessMarketException now
lives in api).

Vendor gson, jaxb, okhttp, openjfx and tomcat under lib/, and group the
JUnit standalone jar into lib/junit/ alongside them.

Rewrite every .classpath: drop the copy-pasted optional="true" that was
masking real build path errors, point the library entries at ../lib/,
and put the JUnit jar on the test source folders so the placeholder
AppTest classes compile.

ui-desktop: take the JavaFX jars off the modulepath (there is no
module-info.java, so module="true" left the packages unresolvable) and
add a Launcher that calls Application.launch, avoiding the "JavaFX
runtime components are missing" check without VM arguments.

engine: add LocalGuessMarketService and the GuessMarketContext provider
interface, and give GuessMarketException the no-arg and cause
constructors they need.
</content>
</entry>
</feed>
