home · contact · privacy
ircplom
9 months agoRefactor out db_primitives:_Dict.
Christian Heller [Wed, 5 Nov 2025 19:17:00 +0000 (20:17 +0100)]
Refactor out db_primitives:_Dict.

9 months agoMove data structure primitives out of client.py into new db_primitives.py.
Christian Heller [Wed, 5 Nov 2025 19:05:02 +0000 (20:05 +0100)]
Move data structure primitives out of client.py into new db_primitives.py.

9 months agoIn debug window, don't spread tuples over one-per-item line sequences.
Christian Heller [Mon, 3 Nov 2025 22:59:39 +0000 (23:59 +0100)]
In debug window, don't spread tuples over one-per-item line sequences.

9 months agoDisplay MOTD in server window.
Christian Heller [Mon, 3 Nov 2025 22:46:01 +0000 (23:46 +0100)]
Display MOTD in server window.

9 months agoHandle socket_gaierror also during connection, avoid hard-coded errno ints.
Christian Heller [Mon, 3 Nov 2025 19:06:05 +0000 (20:06 +0100)]
Handle socket_gaierror also during connection, avoid hard-coded errno ints.

9 months agoIn testing, reduce verbosity of many insert calls.
Christian Heller [Mon, 3 Nov 2025 18:49:30 +0000 (19:49 +0100)]
In testing, reduce verbosity of many insert calls.

9 months agoExtend ERROR regex matching tests.
Christian Heller [Mon, 3 Nov 2025 08:51:51 +0000 (09:51 +0100)]
Extend ERROR regex matching tests.

9 months agoHave /disconnect abort auto-connect.
Christian Heller [Mon, 3 Nov 2025 06:00:20 +0000 (07:00 +0100)]
Have /disconnect abort auto-connect.

9 months agoMinor code style improvement.
Christian Heller [Mon, 3 Nov 2025 05:05:05 +0000 (06:05 +0100)]
Minor code style improvement.

9 months agoFor interpreting ERROR messages towards connection retries, use regex matching, add...
Christian Heller [Mon, 3 Nov 2025 05:02:32 +0000 (06:02 +0100)]
For interpreting ERROR messages towards connection retries, use regex matching, add "Ping timeout".

9 months agoOn failing tests, play back previous steps.
Christian Heller [Tue, 28 Oct 2025 22:53:14 +0000 (23:53 +0100)]
On failing tests, play back previous steps.

9 months agoUse FormattingString for type checks and to replace external escaping hints.
Christian Heller [Tue, 28 Oct 2025 21:05:38 +0000 (22:05 +0100)]
Use FormattingString for type checks and to replace external escaping hints.

9 months agoClean up remnants of previous prefix-focused log line formatting logic.
Christian Heller [Tue, 28 Oct 2025 19:01:01 +0000 (20:01 +0100)]
Clean up remnants of previous prefix-focused log line formatting logic.

9 months agoRemove formatting hints from stripped log lines, move formatting to BaseTui.log.
Christian Heller [Tue, 28 Oct 2025 18:20:07 +0000 (19:20 +0100)]
Remove formatting hints from stripped log lines, move formatting to BaseTui.log.

9 months agoIn testing, for log command comparisons ignore formatting instructions.
Christian Heller [Tue, 28 Oct 2025 18:19:06 +0000 (19:19 +0100)]
In testing, for log command comparisons ignore formatting instructions.

9 months agoAdapt indent, highlight nicknames in chat windows, add line formattings test.
Christian Heller [Mon, 27 Oct 2025 06:40:14 +0000 (07:40 +0100)]
Adapt indent, highlight nicknames in chat windows, add line formattings test.

9 months agoFix broken config test with new escape characters.
Christian Heller [Mon, 27 Oct 2025 06:39:27 +0000 (07:39 +0100)]
Fix broken config test with new escape characters.

9 months agoOverhaul formatting and testing of line writings.
Christian Heller [Mon, 27 Oct 2025 06:38:21 +0000 (07:38 +0100)]
Overhaul formatting and testing of line writings.

9 months agoRemove dead code.
Christian Heller [Fri, 24 Oct 2025 22:26:43 +0000 (00:26 +0200)]
Remove dead code.

9 months agoIn tests, automatically call quit steps once end of script reached.
Christian Heller [Fri, 24 Oct 2025 18:16:11 +0000 (20:16 +0200)]
In tests, automatically call quit steps once end of script reached.

9 months agoMinor refactoring.
Christian Heller [Fri, 24 Oct 2025 16:26:38 +0000 (18:26 +0200)]
Minor refactoring.

9 months agoFurther extend scrolling and bookmark tests.
Christian Heller [Thu, 23 Oct 2025 04:36:40 +0000 (06:36 +0200)]
Further extend scrolling and bookmark tests.

9 months agoExtend history cutoff tests.
Christian Heller [Thu, 23 Oct 2025 04:28:36 +0000 (06:28 +0200)]
Extend history cutoff tests.

9 months agoFix log depth cutoff not limiting negative history scroll index.
Christian Heller [Thu, 23 Oct 2025 03:42:31 +0000 (05:42 +0200)]
Fix log depth cutoff not limiting negative history scroll index.

9 months agoAdd basic log depth cutoff tests.
Christian Heller [Thu, 23 Oct 2025 03:38:29 +0000 (05:38 +0200)]
Add basic log depth cutoff tests.

9 months agoIn tests, replace anchoring from within script by inserts of pre-defined blocks.
Christian Heller [Wed, 22 Oct 2025 23:42:34 +0000 (01:42 +0200)]
In tests, replace anchoring from within script by inserts of pre-defined blocks.

9 months agoMinor test refactoring.
Christian Heller [Wed, 22 Oct 2025 17:10:08 +0000 (19:10 +0200)]
Minor test refactoring.

9 months agoAlso update status line after each successful command execution.
Christian Heller [Tue, 21 Oct 2025 13:41:11 +0000 (15:41 +0200)]
Also update status line after each successful command execution.

9 months agoUpdate status line on any logs, not just those of other windows.
Christian Heller [Tue, 21 Oct 2025 13:03:15 +0000 (15:03 +0200)]
Update status line on any logs, not just those of other windows.

9 months agoMinor test optimization.
Christian Heller [Tue, 21 Oct 2025 05:17:32 +0000 (07:17 +0200)]
Minor test optimization.

9 months agoRemove never-read attribute setting.
Christian Heller [Tue, 21 Oct 2025 01:00:06 +0000 (03:00 +0200)]
Remove never-read attribute setting.

9 months agoFix off-by-one, too-early-enabling scroll calculations.
Christian Heller [Tue, 21 Oct 2025 00:57:28 +0000 (02:57 +0200)]
Fix off-by-one, too-early-enabling scroll calculations.

9 months agoFix broken testing repeat line indices (plus some minor refactoring).
Christian Heller [Mon, 20 Oct 2025 23:09:43 +0000 (01:09 +0200)]
Fix broken testing repeat line indices (plus some minor refactoring).

9 months agoIn testing, ignore empty lines.
Christian Heller [Mon, 20 Oct 2025 22:39:55 +0000 (00:39 +0200)]
In testing, ignore empty lines.

9 months agoFix timeout test broken by previous repeat syntax change.
Christian Heller [Mon, 20 Oct 2025 19:41:30 +0000 (21:41 +0200)]
Fix timeout test broken by previous repeat syntax change.

9 months agoMinor refactoring.
Christian Heller [Mon, 20 Oct 2025 19:41:13 +0000 (21:41 +0200)]
Minor refactoring.

9 months agoFor testing "repeat" directive, start offsets at lowest int in targeted regions'...
Christian Heller [Mon, 20 Oct 2025 19:30:35 +0000 (21:30 +0200)]
For testing "repeat" directive, start offsets at lowest int in targeted regions' modifiable int args.

9 months agoReorganize test script expansions.
Christian Heller [Mon, 20 Oct 2025 17:54:59 +0000 (19:54 +0200)]
Reorganize test script expansions.

10 months agoIn testing, reduce verbosity of "repeat" command.
Christian Heller [Sun, 19 Oct 2025 08:53:30 +0000 (10:53 +0200)]
In testing, reduce verbosity of "repeat" command.

10 months agoRestructure color formatting.
Christian Heller [Sun, 19 Oct 2025 08:12:50 +0000 (10:12 +0200)]
Restructure color formatting.

10 months agoGreatly extend TUI drawing tests.
Christian Heller [Sun, 19 Oct 2025 04:48:53 +0000 (06:48 +0200)]
Greatly extend TUI drawing tests.

10 months agoFix scrolling's .history_idx_neg calculation stumbling over bookmark line.
Christian Heller [Sun, 19 Oct 2025 04:48:10 +0000 (06:48 +0200)]
Fix scrolling's .history_idx_neg calculation stumbling over bookmark line.

10 months agoIn testing, improve flexibility of screen line check command.
Christian Heller [Sat, 18 Oct 2025 18:51:07 +0000 (20:51 +0200)]
In testing, improve flexibility of screen line check command.

10 months agoFor testing "repeat" directive, allow relative next to absolute number manipulations.
Christian Heller [Fri, 17 Oct 2025 08:00:06 +0000 (10:00 +0200)]
For testing "repeat" directive, allow relative next to absolute number manipulations.

10 months agoRestructure testing command syntax for greater flexibility and extensibility.
Christian Heller [Fri, 17 Oct 2025 03:43:13 +0000 (05:43 +0200)]
Restructure testing command syntax for greater flexibility and extensibility.

10 months agoReorganize testing syntax.
Christian Heller [Thu, 16 Oct 2025 22:26:20 +0000 (00:26 +0200)]
Reorganize testing syntax.

10 months agoAdd scrolling tests.
Christian Heller [Thu, 16 Oct 2025 18:20:30 +0000 (20:20 +0200)]
Add scrolling tests.

10 months agoIn testing, restructure TUI command syntax to allow line-alternate repeats.
Christian Heller [Thu, 16 Oct 2025 17:15:29 +0000 (19:15 +0200)]
In testing, restructure TUI command syntax to allow line-alternate repeats.

10 months agoRemove dead code.
Christian Heller [Wed, 15 Oct 2025 02:40:00 +0000 (04:40 +0200)]
Remove dead code.

10 months agoIn testing, have explicit Playbook testing breaks for prompt and server inputs too.
Christian Heller [Wed, 15 Oct 2025 02:18:16 +0000 (04:18 +0200)]
In testing, have explicit Playbook testing breaks for prompt and server inputs too.

10 months agoFor testing, use ERR_STR_TIMEOUT rather than 'FAKE_IRC_CONN_TIMEOUT_EXCEPTION'.
Christian Heller [Wed, 15 Oct 2025 02:07:14 +0000 (04:07 +0200)]
For testing, use ERR_STR_TIMEOUT rather than 'FAKE_IRC_CONN_TIMEOUT_EXCEPTION'.

10 months agoIn testing, for TUI directives call .redraw_affected directly when needed.
Christian Heller [Tue, 14 Oct 2025 22:03:48 +0000 (00:03 +0200)]
In testing, for TUI directives call .redraw_affected directly when needed.

10 months agoAdd basic TUI drawing testing.
Christian Heller [Tue, 14 Oct 2025 14:18:14 +0000 (16:18 +0200)]
Add basic TUI drawing testing.

10 months agoMark NOTICE with different nick brackets rather than '***' prefix.
Christian Heller [Tue, 14 Oct 2025 10:23:20 +0000 (12:23 +0200)]
Mark NOTICE with different nick brackets rather than '***' prefix.

10 months agoIn test.test, avoid confusingly naming host server as domain of client.
Christian Heller [Wed, 8 Oct 2025 22:34:23 +0000 (00:34 +0200)]
In test.test, avoid confusingly naming host server as domain of client.

10 months agoAdd test for legalities of /reconnect and /disconnect.
Christian Heller [Wed, 8 Oct 2025 22:33:05 +0000 (00:33 +0200)]
Add test for legalities of /reconnect and /disconnect.

10 months agoCatch _all_ Client.send fails.
Christian Heller [Wed, 8 Oct 2025 22:23:04 +0000 (00:23 +0200)]
Catch _all_ Client.send fails.

10 months agoWith new test logging output, misleading line idx display on AssertionError no longer...
Christian Heller [Wed, 8 Oct 2025 21:46:42 +0000 (23:46 +0200)]
With new test logging output, misleading line idx display on AssertionError no longer needed.

10 months agoAdd processing log display to single-file testing.
Christian Heller [Wed, 8 Oct 2025 19:27:58 +0000 (21:27 +0200)]
Add processing log display to single-file testing.

10 months agoHave dedicated test script for ERROR handling.
Christian Heller [Wed, 8 Oct 2025 18:26:19 +0000 (20:26 +0200)]
Have dedicated test script for ERROR handling.

10 months agoHandle history cutoff drawing edge cases.
Christian Heller [Wed, 8 Oct 2025 18:09:25 +0000 (20:09 +0200)]
Handle history cutoff drawing edge cases.

10 months agoHandle "(Connect timed out)" ERROR, trigger timed retry.
Christian Heller [Tue, 7 Oct 2025 10:28:14 +0000 (12:28 +0200)]
Handle "(Connect timed out)" ERROR, trigger timed retry.

10 months agoLimit depth of log history buffer.
Christian Heller [Tue, 7 Oct 2025 08:20:11 +0000 (10:20 +0200)]
Limit depth of log history buffer.

10 months agoReorganize history log drawing to avoid storing empty lines in history.
Christian Heller [Tue, 7 Oct 2025 06:23:25 +0000 (08:23 +0200)]
Reorganize history log drawing to avoid storing empty lines in history.

10 months agoSome code re-organization to make reasoning about it easier.
Christian Heller [Tue, 7 Oct 2025 00:07:35 +0000 (02:07 +0200)]
Some code re-organization to make reasoning about it easier.

10 months agoEnsure Terminal context manager actually gets to finish (i.e. turn cursor visible...
Christian Heller [Mon, 6 Oct 2025 22:12:31 +0000 (00:12 +0200)]
Ensure Terminal context manager actually gets to finish (i.e. turn cursor visible again) on ExceptionEvent.

10 months agoTruly catch all Exceptions for transfer into main loop, to avoid display into scrambl...
Christian Heller [Mon, 6 Oct 2025 19:38:30 +0000 (21:38 +0200)]
Truly catch all Exceptions for transfer into main loop, to avoid display into scrambled TUI.

10 months agoDon't use overly-broad BaseException where inadequate.
Christian Heller [Mon, 6 Oct 2025 19:35:08 +0000 (21:35 +0200)]
Don't use overly-broad BaseException where inadequate.

10 months agoRetry connecting on socket.gaierror.errno == socket.EAI_AGAIN.
Christian Heller [Mon, 6 Oct 2025 19:31:05 +0000 (21:31 +0200)]
Retry connecting on socket.gaierror.errno == socket.EAI_AGAIN.

10 months agoRefactor IrcConnException hierarchy.
Christian Heller [Mon, 6 Oct 2025 19:29:47 +0000 (21:29 +0200)]
Refactor IrcConnException hierarchy.

10 months agoTruly catch all Exceptions for transfer into main loop, to avoid display into scrambl...
Christian Heller [Mon, 6 Oct 2025 18:50:09 +0000 (20:50 +0200)]
Truly catch all Exceptions for transfer into main loop, to avoid display into scrambled TUI.

10 months agoPreserve tracebacks in ExceptionEvent for more informative crashes.
Christian Heller [Mon, 6 Oct 2025 18:49:24 +0000 (20:49 +0200)]
Preserve tracebacks in ExceptionEvent for more informative crashes.

10 months agoAttempt reconnecting on all handled IrcConnAbortExceptions.
Christian Heller [Sun, 5 Oct 2025 12:32:37 +0000 (14:32 +0200)]
Attempt reconnecting on all handled IrcConnAbortExceptions.

10 months agoTurn server messages into own special window, rather than query chat.
Christian Heller [Sun, 5 Oct 2025 12:05:48 +0000 (14:05 +0200)]
Turn server messages into own special window, rather than query chat.

10 months agoSimplify ClientWindow.title/.chatname usage.
Christian Heller [Sun, 5 Oct 2025 05:43:17 +0000 (07:43 +0200)]
Simplify ClientWindow.title/.chatname usage.

10 months agoReport ImplementationFail across all Client windows (since we can't know which should...
Christian Heller [Sun, 5 Oct 2025 04:58:04 +0000 (06:58 +0200)]
Report ImplementationFail across all Client windows (since we can't know which should be interested).

10 months agoImprove paste code.
Christian Heller [Sun, 5 Oct 2025 00:45:25 +0000 (02:45 +0200)]
Improve paste code.

10 months agoFix log line coloring reverting to default after line break.
Christian Heller [Sat, 4 Oct 2025 20:12:05 +0000 (22:12 +0200)]
Fix log line coloring reverting to default after line break.

10 months agoUse whole prefix for log color formatting, add ClientTui-specific colorings.
Christian Heller [Sat, 4 Oct 2025 19:50:23 +0000 (21:50 +0200)]
Use whole prefix for log color formatting, add ClientTui-specific colorings.

10 months agoAdd alert highlighting, allow chained drawing attributes.
Christian Heller [Sat, 4 Oct 2025 14:00:59 +0000 (16:00 +0200)]
Add alert highlighting, allow chained drawing attributes.

10 months agoTrigger TUI's .redraw_affected also on tui_alert_trigger (previously bypassing it).
Christian Heller [Sat, 4 Oct 2025 13:31:06 +0000 (15:31 +0200)]
Trigger TUI's .redraw_affected also on tui_alert_trigger (previously bypassing it).

10 months agoAdd basic line-level highlighting.
Christian Heller [Sat, 4 Oct 2025 12:24:53 +0000 (14:24 +0200)]
Add basic line-level highlighting.

10 months agoMinor code re-organization.
Christian Heller [Sat, 4 Oct 2025 12:09:21 +0000 (14:09 +0200)]
Minor code re-organization.

10 months agoMinor test optimization.
Christian Heller [Thu, 2 Oct 2025 21:09:38 +0000 (23:09 +0200)]
Minor test optimization.

10 months agoAdd exponential-wait-timed auto-retries test; remove any wait times from ping timeout...
Christian Heller [Thu, 2 Oct 2025 21:02:55 +0000 (23:02 +0200)]
Add exponential-wait-timed auto-retries test; remove any wait times from ping timeouts test.

10 months agoTo tests, add wait/sleep directive.
Christian Heller [Thu, 2 Oct 2025 21:01:13 +0000 (23:01 +0200)]
To tests, add wait/sleep directive.

10 months agoTo tests' FakeIrcConnection, add connecting timeout if port > 10000 (and auto-decreme...
Christian Heller [Thu, 2 Oct 2025 20:59:58 +0000 (22:59 +0200)]
To tests' FakeIrcConnection, add connecting timeout if port > 10000 (and auto-decrement on that in TestingClient).

10 months agoFix tests crashing on empty lines in anchored regions.
Christian Heller [Thu, 2 Oct 2025 20:58:32 +0000 (22:58 +0200)]
Fix tests crashing on empty lines in anchored regions.

10 months agoRename test file forgotten to change extension on in previous commit.
Christian Heller [Thu, 2 Oct 2025 20:49:52 +0000 (22:49 +0200)]
Rename test file forgotten to change extension on in previous commit.

10 months agoAllow selection of which tests to run on command line invocation.
Christian Heller [Thu, 2 Oct 2025 19:29:45 +0000 (21:29 +0200)]
Allow selection of which tests to run on command line invocation.

10 months agoFix erroneous argv counting (once more …).
Christian Heller [Thu, 2 Oct 2025 19:26:06 +0000 (21:26 +0200)]
Fix erroneous argv counting (once more …).

10 months agoFix erroneous argv counting.
Christian Heller [Thu, 2 Oct 2025 19:05:02 +0000 (21:05 +0200)]
Fix erroneous argv counting.

10 months agoChange test files' extensions from besides-the-point .txt to meaningful .test.
Christian Heller [Thu, 2 Oct 2025 18:41:43 +0000 (20:41 +0200)]
Change test files' extensions from besides-the-point .txt to meaningful .test.

10 months agoFor command line invocation, disallow (anyways ignored) additional arguments beyond...
Christian Heller [Thu, 2 Oct 2025 18:35:29 +0000 (20:35 +0200)]
For command line invocation, disallow (anyways ignored) additional arguments beyond "test".

10 months agoFor command line invocation, fail on any undefined arguments.
Christian Heller [Thu, 2 Oct 2025 18:33:07 +0000 (20:33 +0200)]
For command line invocation, fail on any undefined arguments.

10 months agoFrom Client.connect thread, move anything not measurably blocking UI back into main...
Christian Heller [Thu, 2 Oct 2025 18:28:14 +0000 (20:28 +0200)]
From Client.connect thread, move anything not measurably blocking UI back into main thread.

10 months agoAlso start exponentially delayed connection retry on connecting timeout.
Christian Heller [Thu, 2 Oct 2025 18:21:21 +0000 (20:21 +0200)]
Also start exponentially delayed connection retry on connecting timeout.

10 months agoImplement on-timeout reconnect-wait only hinted at in previous commit.
Christian Heller [Thu, 2 Oct 2025 18:03:51 +0000 (20:03 +0200)]
Implement on-timeout reconnect-wait only hinted at in previous commit.

10 months agoAuto-reconnect on during-connection timeout.
Christian Heller [Wed, 1 Oct 2025 08:46:22 +0000 (10:46 +0200)]
Auto-reconnect on during-connection timeout.

10 months agoFix delayed shutdown on /quit due to socket recv timeout only returning on full TIMEO...
Christian Heller [Wed, 1 Oct 2025 08:00:57 +0000 (10:00 +0200)]
Fix delayed shutdown on /quit due to socket recv timeout only returning on full TIMEOUT_PING.