I'm very impressed how quickly you respond and produce results!
There may be another small bug. Under 'Manage logs...' the option 'Analyse on pokerth.net...' doesn't seem to do anything.
Also, now when I close the 'Manage logs...' window, I also exit 'Advanced options'. I don't remember it working like that.
PokerTH Web Client
-
Spitessbir
- Posts: 25
- Joined: Fri Mar 29, 2024 1:09 pm
How and when are player statistics calculated and stored? I'm asking because I want to know the implications for statistic if some or all logs are deleted.
-
Spitessbir
- Posts: 25
- Joined: Fri Mar 29, 2024 1:09 pm
Looks like a bug: In the lobby, the 'Display idle players' filter view is not updated when a player joins a game or leaves a game. So you can get a situation where a player is listed as idle but also appears in a game or has left a game but is not in the idle players view.
Thanks for the kind words — and for genuinely useful reports. All last three are addressed:
1) "Analyse on pokerth.net" doing nothing — it was actually working: the upload succeeded, but the result tab was opened after the upload finished, i.e. outside the click gesture, so your popup blocker probably silently discarded it. The tab is now opened within the click itself and the analysis URL injected once the server returns the id. Fixed.
2) Closing "Manage logs" also exiting "Advanced options" — you remembered right, that was a regression from the same change. On desktop both are floating windows and now coexist: closing the logs brings you back to the options. On mobile they still close each other, since two stacked full-screen dialogs would be unusable. While fixing this I also noticed the logs window ignored the "last opened or touched window comes to the front" rule — that's fixed too.
3) Idle players filter not updating — correct, and a real bug. A player's idle status is derived from game membership, but the lobby events that change membership (join, leave, game closed) only repainted the games list, not the players list. All of them now refresh it, so the idle view updates the moment someone sits down or leaves.
On your statistics question: nothing is stored. Stats are recomputed from the logs themselves, on demand, whenever a stats view is opened (with a short cache so repeated opens don't recompute). The logs in the browser database are the single source of truth — so deleting logs removes exactly the hands they contained from every stat, and deleting all of them resets the statistics to empty. Nothing is kept separately, and nothing is lost beyond what you delete. The flip side is that imported logs count immediately: if you import old .pdb files, their hands are included in the stats right away.
1) "Analyse on pokerth.net" doing nothing — it was actually working: the upload succeeded, but the result tab was opened after the upload finished, i.e. outside the click gesture, so your popup blocker probably silently discarded it. The tab is now opened within the click itself and the analysis URL injected once the server returns the id. Fixed.
2) Closing "Manage logs" also exiting "Advanced options" — you remembered right, that was a regression from the same change. On desktop both are floating windows and now coexist: closing the logs brings you back to the options. On mobile they still close each other, since two stacked full-screen dialogs would be unusable. While fixing this I also noticed the logs window ignored the "last opened or touched window comes to the front" rule — that's fixed too.
3) Idle players filter not updating — correct, and a real bug. A player's idle status is derived from game membership, but the lobby events that change membership (join, leave, game closed) only repainted the games list, not the players list. All of them now refresh it, so the idle view updates the moment someone sits down or leaves.
On your statistics question: nothing is stored. Stats are recomputed from the logs themselves, on demand, whenever a stats view is opened (with a short cache so repeated opens don't recompute). The logs in the browser database are the single source of truth — so deleting logs removes exactly the hands they contained from every stat, and deleting all of them resets the statistics to empty. Nothing is kept separately, and nothing is lost beyond what you delete. The flip side is that imported logs count immediately: if you import old .pdb files, their hands are included in the stats right away.
-
Spitessbir
- Posts: 25
- Joined: Fri Mar 29, 2024 1:09 pm
The web client appears to be choking on my 759 files. Import works fine but the app freezes when I open 'STATS' and then 'HISTORY'.narmod wrote: Mon Jul 27, 2026 6:38 am Done — the latest version has an "Import .pdb…" button in the logs window. Multi-select works, so you can import all 759 files in one go (duplicates are detected, re-importing is safe). Imported logs get the full treatment: viewer, local analyzer, export, and one-click analysis on pokerth.net.
Thanks — your 759 files turned out to be a great stress test, and they exposed a real scaling bug rather than just slowness.
I rebuilt a comparable history locally (about 15,000 hands, 225,000 actions, 400 distinct players) and reproduced the freeze: the stats path was doing work proportional to players x whole history, because a few internal lookups rescanned every action for each player, and the table also recomputed everything on each repaint — even though it only ever displays the seated players.
That's fixed in the latest version: the data is indexed once, only the displayed players are computed, and results are cached until the data changes. On my test history the full History view went from ~18.5s to ~1.4s, and at a table from ~18.5s to ~0.1s. The numbers themselves are unchanged.
Please reload and try again with your 759 logs. If History still feels slow on your machine, tell me
I rebuilt a comparable history locally (about 15,000 hands, 225,000 actions, 400 distinct players) and reproduced the freeze: the stats path was doing work proportional to players x whole history, because a few internal lookups rescanned every action for each player, and the table also recomputed everything on each repaint — even though it only ever displays the seated players.
That's fixed in the latest version: the data is indexed once, only the displayed players are computed, and results are cached until the data changes. On my test history the full History view went from ~18.5s to ~1.4s, and at a table from ~18.5s to ~0.1s. The numbers themselves are unchanged.
Please reload and try again with your 759 logs. If History still feels slow on your machine, tell me
-
Spitessbir
- Posts: 25
- Joined: Fri Mar 29, 2024 1:09 pm
1. Performance is much improved but still sluggish enough for me to sometimes miss my betting turn when history is displayed.
2. Many statistic numbers are obviously wrong (see attachment - everything in red looks wrong).
3. One player has over 3000 recorded hands in my database, but history shows less than 200.
4. When you hover over 'N', a non-english tooltip description is displayed.
5. When a player is knocked out, they are not removed from the stats list. I suggest they should no longer be displayed.
2. Many statistic numbers are obviously wrong (see attachment - everything in red looks wrong).
3. One player has over 3000 recorded hands in my database, but history shows less than 200.
4. When you hover over 'N', a non-english tooltip description is displayed.
5. When a player is knocked out, they are not removed from the stats list. I suggest they should no longer be displayed.
- Attachments
-
- History.png (231.7 KiB) Viewed 20 times
All five fixed, — the screenshot made it easy. thanks.
2 & 3 had one root cause: every session numbers its games from 1, and an imported .pdb keeps the id from its own file, so once the whole history is read back, different games collided on the same id. Hands overwrote each other (3000 shown as under 200) and actions landed on the wrong players (hence the impossible percentages). Fixed and covered by a test.
1: the panel recomputed the entire history after every hand — that's what stole your betting turn. On History it now refreshes at most once a minute; anything you click still renders immediately.
4: the 'N' tooltip is translated in all 36 languages now (the other columns keep their English poker terms, like Fold/Check/Call).
5: knocked-out players are dropped from the table list, as you suggested. Their hands stay in the history and in the .pdb.
Please reload and let me know how it looks with your 759 logs.
2 & 3 had one root cause: every session numbers its games from 1, and an imported .pdb keeps the id from its own file, so once the whole history is read back, different games collided on the same id. Hands overwrote each other (3000 shown as under 200) and actions landed on the wrong players (hence the impossible percentages). Fixed and covered by a test.
1: the panel recomputed the entire history after every hand — that's what stole your betting turn. On History it now refreshes at most once a minute; anything you click still renders immediately.
4: the 'N' tooltip is translated in all 36 languages now (the other columns keep their English poker terms, like Fold/Check/Call).
5: knocked-out players are dropped from the table list, as you suggested. Their hands stay in the history and in the .pdb.
Please reload and let me know how it looks with your 759 logs.
-
Spitessbir
- Posts: 25
- Joined: Fri Mar 29, 2024 1:09 pm
That looks excellent!
One last (I hope) small issue - I noticed that the translation globe icon still has a tooltip in French although English is the selected language.
One last (I hope) small issue - I noticed that the translation globe icon still has a tooltip in French although English is the selected language.
Last edited by Spitessbir on Tue Jul 28, 2026 5:30 am, edited 1 time in total.
-
Spitessbir
- Posts: 25
- Joined: Fri Mar 29, 2024 1:09 pm
Feature request:
Sometimes during a game I want to see what exactly happened in a previous hand by looking at the live log, But this is very difficult to do because the log keeps scrolling past the point you wish to view. I would like the widget and qml client behaviour to be replicated whereby scrolling automatically pauses as soon as you move backwards in the log but keeps updating in the background. Normal scrolling resumes when you move back to the end of the log.
Sometimes during a game I want to see what exactly happened in a previous hand by looking at the live log, But this is very difficult to do because the log keeps scrolling past the point you wish to view. I would like the widget and qml client behaviour to be replicated whereby scrolling automatically pauses as soon as you move backwards in the log but keeps updating in the background. Normal scrolling resumes when you move back to the end of the log.
