Commit Graph
96 Commits
Author SHA1 Message Date
Rsclub2_2andClaude Opus 5.5 d311092206 List direct commits on main in the release notes
GitHub's generated release notes only cover merged pull requests, so
commits pushed straight to main were missing. The release job now
builds the notes itself: "What's Changed" holds "Commits on main"
(first-parent, without bot and squash-merge commits) and GitHub's PR
list as "Merged PRs".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-22 23:20:40 +02:00
Rsclub2_2andClaude Opus 5.5 51cc6f65f7 Use the macOS system menu bar in all windows
On macOS the main menus move into the system menu bar and are shared
with the secondary windows, so they stay available whichever window
has the focus. The connection state indicator becomes a read-only
LINK menu there instead of the status bar button. Other platforms
are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-22 23:20:38 +02:00
Rsclub2_2andClaude Opus 5.5 b96926a6bb Show a drag-to-install layout in the macOS DMG
The DMG window now has a background with an arrow from the app to
the Applications folder, in the KST4Contest colours. Finder applies
the layout through AppleScript; if that fails, e.g. on a headless
runner, the script warns and builds the plain DMG as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-22 23:19:55 +02:00
Rsclub2_2andClaude Opus 5.5 1dfd8bf46b Use one base font size and a per-profile startup design
JavaFX picks a 13px default font on macOS and Linux but 12px on
Windows, so labels in fixed-size controls were cut off outside
Windows. Both stylesheets now set 12px on the root.

Each operator profile now chooses light or dark mode for startup on
the GUI settings tab. The Windows menu entries remain a quick switch
for the running session. All windows, including the update window
and the top candidates list, follow the design, and the main window
no longer starts light while the station map starts dark.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-22 23:19:54 +02:00
Rsclub2_2andClaude Opus 5 27c093b108 Add the in-app update concept for 1.50
Captures the agreed design so it can be handed over later: extended
update feed with per-artifact metadata, a build-time package-type
marker, a testable check service replacing the blocking call in the
ChatController constructor, a non-modal hint suppressed while connected
to ON4KST, verified downloads and platform-specific execution.

Concept only, nothing implemented yet. Line anchors were verified
against this branch.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HT8R7zTMoQnmJj6dGbaqqf
2026-09-22 23:17:03 +02:00
Rsclub2_2 3295b3f339 Code Version 1.50 2026-09-22 23:17:03 +02:00
Rsclub2_2andClaude Opus 5 500227bd07 Fail cleanly when the registry path has no directory
SpotBugs flagged a null passed to Files.createTempFile: the null check guarded
only createDirectories, while the temporary file creation would still have
dereferenced it. The path is resolved absolute so this is practically
unreachable, but bailing out with a log line is cheaper than the latent NPE.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hpa6bjie5qkeNG62y6FmXm
2026-09-22 23:17:02 +02:00
Rsclub2_2andClaude Opus 5 eeb94ad41a Make the terrain profile cache multi operator safe
The cache stored a single owner identity in a meta table and dropped the whole
TerrainProfileCache table whenever the configured callsign or locator differed
from it. With several operator profiles that turns the cache into a permanent
miss: every switch between two operators with different locators would discard
every computed profile.

Entries are separated by owner identity through the primary key already, so the
wipe is replaced by an owner table that simply records which identities are in
use. A different owner now misses the cache instead of clearing everybody's.

The cache also moves out of the worked station database into its own global
terrainprofilecache.db. Terrain profiles are pure geometry derived from two
locators and a sample count; at a multi operator station both operators share
one location, so a per profile copy would only double the traffic against the
terrain service. No migration is needed, the new file refills itself, and the
old tables stay readable for older releases.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hpa6bjie5qkeNG62y6FmXm
2026-09-22 23:17:01 +02:00
Rsclub2_2andClaude Opus 5 5573c403f4 Document operator profiles
Adds a manual section in both languages covering where profile files live, the
choice between shared and own worked stations, managing profiles, the startup
selection and the --profile argument, switching while running, and the fact
that passwords stay in clear text so profiles are not an access boundary.

Records the architecture in PROJECT_CONTEXT: lazy registry, derived paths, why
an additional profile database is created empty, why the login callsign default
is empty, and the constraints of rebuilding the runtime for a switch.

Adds a v1.50 changelog entry in both languages including the upgrade notes: no
file is moved, and going back to an older release stays possible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hpa6bjie5qkeNG62y6FmXm
2026-09-22 23:17:00 +02:00
Rsclub2_2andClaude Opus 5 2b20b54bda Manage operator profiles from the settings window
Adds a "Profiles" tab, appended last so no established tab position shifts,
offering create, duplicate, rename, delete, a switch between shared and own
worked stations, and activation of another profile.

Duplicating copies the whole configuration except callsign and password. The
antenna, locator, layout and integration settings are exactly the work nobody
wants to enter twice, while the credentials belong to one operator only. The
root profile can neither be deleted nor moved off the common station database,
because its files are the installation itself.

The login callsign and its raw form now default to empty instead of a real
callsign. The XML reader treats an empty element as "not set" and falls back to
the field default, so without this change a profile created without credentials
would come up carrying the callsign compiled into the defaults - and an
operator could transmit under someone else's call.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hpa6bjie5qkeNG62y6FmXm
2026-09-22 23:16:59 +02:00
Rsclub2_2andClaude Opus 5 26717b86c7 Switch the operator profile while the application is running
Splits the teardown out of stop() into a reusable, idempotent shutdownRuntime()
and adds File - Switch operator profile..., which tears the current runtime
down and builds a fresh one for the selected profile.

The new runtime is a new application instance rather than a second start() on
the existing one. Many controls are instance fields created once, so reusing
the instance would re-parent mounted nodes and register every listener twice.
A fresh instance is safe because the class keeps no mutable static state.

Closing every window during a switch would end the process under the JavaFX
default, so the application takes over the exit decision: implicit exit is
turned off, the main window gets an explicit close handler, and every exit path
runs through the launcher. That also fixes losing the window layout on exit
after a switch, because JavaFX only calls stop() on the instance it launched.

The two view timers are now cancelled null-safe; stop() used to dereference
them unguarded, which would fail if shutdown happened before they were created.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hpa6bjie5qkeNG62y6FmXm
2026-09-22 23:16:58 +02:00
Rsclub2_2andClaude Opus 5 43aad1a8f0 Release the background resources a discarded runtime owns
Several resources outlived a disconnect on purpose, which was harmless while a
process ran exactly one session for its whole life. They are now released when
the controller itself is closed:

- the ON4KST connection supervisor thread, which stopByUser did not touch
- the sked reminder scheduler, which had no shutdown at all
- the reachability executor, whose shutdown method existed but was never called
- the PSTRotator retry scheduler and its pending retry
- the map tile proxy, whose stop method existed but was never called, leaving a
  server socket and a twelve thread pool behind
- the station map bridge listeners and its coalescing animation, which would
  otherwise keep firing into a dead user interface

These are real leaks today; they only become visible when a second runtime is
built in the same process.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hpa6bjie5qkeNG62y6FmXm
2026-09-22 23:16:57 +02:00
Rsclub2_2andClaude Opus 5 af93d0c08c Select the operator profile at startup
Resolves the active operator profile before the chat controller is built and
passes its two file names on, so preferences, layout and worked data follow the
profile.

The resolution is deliberately quiet for existing installations. With no
registry or exactly one profile nothing is asked and nothing is written, so a
single operator start is unchanged. Only from two profiles on does a small
picker appear with the last used profile preselected, where Enter or a double
click starts immediately. A "--profile" argument, or the equivalent system
property, skips the picker; an unknown name warns and falls back to the normal
selection instead of refusing to start.

The startup decision itself lives in OperatorProfileBootstrap and contains no
user interface code, so it is covered by headless tests. The window title gains
the profile name only when a second profile exists.

Command line parsing happens in init() and is kept in a process wide holder,
because JavaFX only knows the parameters of the instance it launched itself.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hpa6bjie5qkeNG62y6FmXm
2026-09-22 23:16:56 +02:00
Rsclub2_2andClaude Opus 5 63e33d8d3e Introduce the operator profile model and its registry
Adds the descriptor, the path derivation and the registry persistence for
operator profiles. Nothing calls them yet, so behaviour is unchanged.

The descriptor stores only a shared/own flag, never a path. All file names are
derived in OperatorProfilePaths, so a stored path can never drift apart from
the flag that produced it. A profile identifier is a stable, file system safe
slug assigned once, so renaming a profile never moves a directory.

The registry is created lazily. An installation that only has the historic flat
layout gets no registry file and no profiles directory; the root profile is
synthesised in memory instead. That keeps a single operator installation
byte for byte the one it was before, and it keeps a downgrade to an older
release a no-op. A missing, unreadable or malformed registry is logged and
treated like an installation without additional profiles, never as an error.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hpa6bjie5qkeNG62y6FmXm
2026-09-22 23:16:54 +02:00
Rsclub2_2andClaude Opus 5 19ad4d87a8 Allow preferences and chat controller to be bound to a file set
ChatPreferences gains a constructor taking a preferences file name relative to
the application directory, so "profiles/OP2/preferences.xml" is as valid as the
historic flat "preferences.xml". A missing file is still seeded from the
bundled template, which gives an additional operator the same clean defaults a
first installation gets.

ChatController gains a constructor that passes both relative file names and the
seed flag through to ChatPreferences and DBController. The existing
constructors delegate to the historic file names, so nothing changes yet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hpa6bjie5qkeNG62y6FmXm
2026-09-22 23:16:53 +02:00
Rsclub2_2andClaude Opus 5 933413f8ef Make DBController work on one database file per instance
The controller was a static singleton: an eagerly created static instance
opened the root database during class initialization, and both the connection
and the path were static fields. A second operator profile in the same process
was therefore impossible, and ChatController's own "new DBController()" never
opened anything - it silently adopted the eagerly opened root connection.

- drop the eager static instance in favour of a lazily created default instance
- turn connection and path into instance state
- add a constructor taking a database file name relative to the application
  directory plus a flag whether a missing file is seeded from the bundled
  template
- create additional profile databases empty instead of seeding them: the
  bundled template carries 3452 foreign callsigns and user_version 0, which
  would show a new operator foreign data and trigger the full callsign
  normalization rebuild. The schema is created by the existing table setup.
- remember the shutdown hook so closeDBConnection can deregister it; otherwise
  every profile switch would leave another hook holding a dead connection

All SQL statements keep referencing the plain field and are unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hpa6bjie5qkeNG62y6FmXm
2026-09-22 23:16:49 +02:00
Rsclub2_2andClaude Opus 5 4ad1cf71dd Document that a sandboxed logging program needs its own network permission
A logging program started as a Flatpak, or through a Wine environment
such as Bottles, uses the network permissions of that sandbox. Without
shared=network its 127.0.0.1 is not the loopback KST4Contest listens on,
so the connection is refused although KST4Contest reports the port
correctly.

Adds the check and the override command to the DX Cluster troubleshooting
section in both language versions, and notes that the published
KST4Contest Flatpak manifest already carries --share=network.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HT8R7zTMoQnmJj6dGbaqqf
2026-09-07 22:21:47 +02:00
Rsclub2_2 edf71b4105 Version 1.44.0 2026-09-04 13:55:45 +02:00
Rsclub2_2 885bf83c2f add DN9APW to credit. 2026-09-04 13:47:39 +02:00
Rsclub2_2 634b88238d WT-Logsync when KST4C is not actively receiving WT Packets,
so that we can later mark QSOs as marked, even though we never received
the packet.
2026-09-04 13:42:50 +02:00
Rsclub2_2 8aadbb9ee0 AUR: fix PKGBUILD in Repo 2026-08-22 18:53:44 +02:00
Rsclub2_2 3b344482ba AUR: fix Packages not updating 2026-08-22 18:36:13 +02:00
Rsclub2_2 86ad2f7a43 Website: Version 1.42 released news 2026-08-22 18:29:52 +02:00
Rsclub2_2 29ce6b0a4d AUR: mark Workspace as safe for git. 2026-08-22 18:27:22 +02:00
Rsclub2_2 4d8b8aa12e v1.42 Docs updated 2026-08-22 18:24:55 +02:00
Rsclub2_2andClaude Opus 5 af30c17a0d Macos signing (#80)
* Sign and notarize macOS builds

jpackage cannot produce a distributable macOS bundle on its own. It ad-hoc
signs the embedded runtime and then re-runs codesign on the same files without
--force, which codesign rejects; and "--type dmg --app-image" re-signs the app
it is handed, replacing a Developer ID signature with an ad-hoc one. So the
build now creates an unsigned app-image, signs it from the inside out, and
wraps it with hdiutil.

Apple's notary service also unpacks JARs and checks the native libraries
inside them, which sqlite-jdbc ships for both architectures. Those are signed
before the bundle is sealed, since rewriting a JAR afterwards would invalidate
the seal. A preflight check verifies Apple's two criteria locally, so a missed
binary costs seconds rather than a round trip to the notary service.

Two long-standing defects surfaced while testing and are fixed here: the
bundle identifier defaulted to the main class's package name (kst4contest.view
instead of de.x08.KST4Contest), and every release reported version 1.0 in
Finder because --app-version was never passed. Neither affects existing users:
the app keeps its settings in ~/.praktiKST, independent of the bundle ID.

Both workflows call the same script the local Mac uses, so the two cannot
drift apart. Signing needs a keychain that can answer a UI prompt, which a
runner cannot, so ci-import-cert.sh creates a throwaway keychain whose
password is generated per job and discarded with it. Notarization goes through
an App Store Connect API key and needs no keychain at all.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Sign bundle contents serially

Signing the app image's Mach-O files with "xargs -P 8" passed locally but
failed on a runner: codesign reported "replacing existing signature" and then
"No such file or directory" for that same path. The two libjli.dylib copies are
separate inodes, so this is not hard links being signed twice -- concurrent
codesign runs over one bundle are simply not reliable. Serially costs about a
minute, since each call waits on Apple's timestamp server.

Also stop the matrix from cancelling the other architecture on a failure; that
throws away half the diagnostic information from a failed run.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Document macOS signing from 1.42

The installation guides described the right-click workaround as the normal
first launch. That stays, but as the path for 1.41.1 and older; from 1.42 a
double-click works. Both guides also show how to verify a download with spctl,
so the claim is checkable rather than something to take on faith.

The per-channel download notes distinguish where the channels actually stand:
Nightly is built from main and is signed as of now, while Stable still points
at 1.41.1, so those notes name the version instead of claiming it outright.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 16:48:31 +02:00
Rsclub2_2 399e5f34b7 Updated KST4C Logo for Builds in Higher Resolution and added it as an
SVG for Source. Should also be done when building Package with the help
of AUR in all Version and every Linux dist.
2026-08-22 00:32:07 +02:00
Rsclub2_2 2bc7554a52 Manual Fixup & Screenshots 2026-08-21 14:17:11 +02:00
Rsclub2_2 77b7a4729f Excuse me, wir 2026 2026-08-18 17:04:42 +02:00
Rsclub2_2 56b2fae0a3 Fix Nightly Build... 2026-08-18 17:00:13 +02:00
Rsclub2_2andClaude Opus 5 f014b4697b packaging: derive the jpackage module list from module-info.java instead of maintaining sixteen copies
The jdk.net incident was caused by duplication rather than by a single
oversight: the module list existed in module-info.java, in the jpackage Maven
plugin and in fourteen hardcoded --add-modules arguments across the workflows
and AUR PKGBUILDs. Only the path that CI does not use was kept up to date, so
every packaged build shipped a runtime image without jdk.net.

Add packaging/AddModules.java, a single file source program that reads the
requires clauses and prints the platform modules. It runs identically on the
Linux, macOS and Windows runners without a build step, and skips third party
requires such as jlayer, which is an automatic module and cannot be linked
into a runtime image at all, as well as test only requires and requires
static. All sixteen packaging call sites now resolve the list through it, so
they can no longer drift from the descriptor.

The jpackage Maven plugin takes its modules as individual XML elements and
cannot consume a generated value, so it remains a second copy. To keep it
honest the helper has a pom verification mode, bound to the validate phase
via exec-maven-plugin. Binding it to the build rather than to a workflow
trigger means it also fires on direct pushes to main, on tagged releases, in
both AUR PKGBUILDs and on local builds, none of which run the pull request
check.

The released AUR PKGBUILD builds from a tag tarball that may predate the
helper, and aur-publish.yml rewrites pkgver to the latest release, so it
falls back to the list carried in that tarball's own pom.xml.

Verified that the generated list produces a byte identical runtime image to
the previous hardcoded one, that removing a requires fails the build with a
precise diff, and that the pull request check and the push triggered nightly
AppImage job both succeed under act.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Generated-By: Claude Code (Claude Opus 5)
2026-08-15 01:05:45 +02:00
Rsclub2_2andClaude Opus 5 209034724f on4kst: add the jdk.net module to every packaging module list and stop connection setup from failing silently
The ON4KST connection manager introduced in f8c04e7 uses
jdk.net.ExtendedSocketOptions to configure kernel side TCP keepalives. The
new dependency was added to module-info.java and to the jpackage Maven
plugin, but the CI and AUR builds do not use that plugin: they call jpackage
directly with a hardcoded --add-modules list that still lacked jdk.net.
Because jdk.net is not pulled in transitively, every packaged runtime image
shipped without the class while development runs against the full JDK and
kept working.

The resulting NoClassDefFoundError is an Error, so neither the catch in
configureSocket nor the surrounding catch (Exception) in openConnection
handled it. Running on a ScheduledExecutorService, the throwable was stored
in the task future and never surfaced, leaving the state machine stuck in
CONNECTING with no reconnect attempt and no user visible failure.

Add jdk.net to all 16 module lists, covering nightly artifacts, tagged
releases and both AUR PKGBUILDs, so releases are affected as well as
nightlies. Additionally catch LinkageError in configureSocket so a runtime
image without jdk.net degrades to application level heartbeats, and catch
Throwable in openConnection so an Error can no longer be swallowed by the
scheduler.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 00:32:45 +02:00
Rsclub2_2 e37cda8ff2 Add 50/70 MHz band support (table, NOT-QRV, station setup, loggers)
Issue #68

Adds Band.B_50/B_70 and wires them through the same band-opportunity
machinery as the other bands: X/a/B+/o table columns and filter button
in the User table and the Workedstn database table, NOT-QRV checkboxes
and propagation across callsign variants, "My station uses 6m/4m band"
toggles, station-name detection ("50", "6M", "70MHZ", "4M" - without
stealing the existing bare "70"/"6" cm-band shorthand), Win-Test sked
band IDs (10/50MHz, 11/70MHz), and UCX-logger worked-band recognition.

Persists worked50/70 and notQRV50/70 via an additive SQLite migration
(same ensureColumnExists pattern as the earlier v1.1->v1.2 migration),
verified against a real database file.

ReachabilityService.resolveAutoBand() now also falls back to 50 MHz
(then 70 MHz) for stations in the "50/70 MHz" chat category, mirroring
the existing Microwave-category fallback to 23cm.

Assisted by Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 21:10:15 +02:00
Rsclub2_2 fdec5220d1 Unify band-opportunity logic and add B+/a/o status to the station table
Issue #70, #66, #65

Introduces a shared BandOpportunityResolver so the station table's band
columns, the New bands filter, the band-upgrade hint, the priority
score, the map markers and the automatic reachability band selection
all derive band availability the same way: recent QRG detections (30
min window) plus station-name hints, evaluated across every active
callsignRaw variant, with manual NOT-QRV always taking precedence.

The per-band table cells now distinguish:
- X: worked on this band
- a: band available, call not worked on any band yet
- B+: band available, call already worked on another band
- o: grid square already worked on this band (any station) - combines
  with the others, e.g. "ao" or "B+o"

Both "a" and "o" can be toggled off in the GUI settings tab.

Assisted by Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 21:00:23 +02:00
Rsclub2_2 35f790f06b Fix stale Beta tab showing a superseded prerelease
GitHub never clears the prerelease flag once a beta ships as stable,
so the latest prerelease can be older than the latest stable release.
Compare publish dates and fall back to the empty state when stable is
newer.

Assisted by Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 20:49:06 +02:00
Rsclub2_2 c04117ad0a added Beta and Nightly Download Links to website using nightly.link 2026-08-03 22:31:14 +02:00
Rsclub2_2 5b7897c872 Remove unnecessary Website Build 2026-07-21 13:50:48 +02:00
Rsclub2_2 7acdfca4f5 Fix AUR not liking the .git links 2026-07-15 01:12:37 +02:00
Rsclub2_2 373a30933b News about AUR Packages 2026-07-15 01:08:27 +02:00
Rsclub2_2 46d722967a fix and Pipeline AUR nightly 2026-07-14 17:19:29 +02:00
Rsclub2_2 fc246a5607 Pipeline AUR 2026-07-14 17:04:29 +02:00
Rsclub2_2 df0e535fb3 docs: add AUR installation instructions to Wiki 2026-07-14 16:54:19 +02:00
Rsclub2_2 e85d4c2fe2 fix: revert AUR url back to GitHub upstream [skip ci] 2026-07-14 16:47:18 +02:00
Rsclub2_2 360e55633b chore: set AUR package url to kst4contest.hamradioonline.de [skip ci] 2026-07-14 16:43:36 +02:00
Rsclub2_2 367967518e chore: fix kst4contest-git pkgver to 1.42.0 base [skip ci] 2026-07-14 16:41:33 +02:00
Rsclub2_2 e339b6fccf implement #49 2026-07-09 18:47:29 +02:00
Rsclub2_2 d201997587 added automatic Changelog XML to new Website.
also now the XML gets pulled from new Website
2026-07-09 16:12:29 +02:00
Rsclub2_2 052cfea7ad News about Hotfix 2026-07-09 01:14:13 +02:00
Rsclub2_2 47126f4ae1 Push website rebuild commits via deploy key instead of GITHUB_TOKEN 2026-07-08 22:44:39 +02:00
Rsclub2_2 ff71623b90 Website: Version Dynamic and Roadmap Padding 2026-07-08 22:03:38 +02:00
Rsclub2_2 ead985a741 Website Build with Roadmap. 2026-07-08 21:35:15 +02:00
Rsclub2_2 ef1eeeed36 Bump version to 1.42 now that v1.41.1 hotfix is tagged and released 2026-07-08 21:27:30 +02:00
Rsclub2_2 4a34e28a84 fix Problems with sendfield again #56 2026-07-08 21:09:02 +02:00
Rsclub2_2 38ef50cee8 Revert version bump to 1.42, set to 1.41.1 for upcoming hotfix 2026-07-08 20:52:58 +02:00
Rsclub2_2 62999cfed8 Update Nightly Pipeline to run less often, to not put to much stress on Servers 2026-07-07 17:08:13 +02:00
Rsclub2_2 49524146e8 Changed to direct to people to the new Website 2026-07-07 17:01:29 +02:00
Rsclub2_2 dd2ac3bc69 Remove Node_modules as not needed vendored
also changed few Things about Website
2026-07-07 14:05:47 +02:00
Rsclub2_2 62b6bbdcbc next Version 1.42 2026-07-02 14:15:36 +02:00
Rsclub2_2 e2a327c730 Pipelines back to 1ce468145c 2026-06-30 14:49:15 +02:00
Rsclub2_2 521ea18782 Fix Pipelines Again 2026-06-30 14:39:11 +02:00
Rsclub2_2 1ce468145c i dont know any message for this. Still would like that audio will work in Flatpak 2026-06-30 00:17:31 +02:00
Rsclub2_2 2f4aac8cf7 fix CI/CD Java 21 with more upgrade to JDK21 2026-06-30 00:02:03 +02:00
Rsclub2_2 94a5f6a9f7 hopefully fix CI/CD 2026-06-29 23:44:33 +02:00
Rsclub2_2 3070d03893 JavaFX21 2026-06-29 23:35:01 +02:00
Rsclub2_2 a53e6a420f fix Pacman Package and try to fix audio.
Audio did not work, but better debug handling.
2026-06-29 23:27:29 +02:00
Rsclub2_2 57deda4b94 Flatpak Audio 2026-06-29 22:06:47 +02:00
Rsclub2_2 3632a0fcc9 Options do not exist, fix 2026-06-29 21:37:00 +02:00
Rsclub2_2 ff6b8b75a6 JavaFX Media Build Process to fix Problems with Packaging
thx DB2DY for the info.

Dependencies for native Linux Packages added.
2026-06-29 21:28:37 +02:00
Rsclub2_2 eee1594d30 Flatpak add Filesystem for persistent Storage 2026-06-29 17:49:52 +02:00
Rsclub2_2andMarc Froehlich ba3ef41fa0 Reduced opentopo api calls // added 4 char locator new-filter // added new band and tropo filter and priority sorter // decreased map load (#43)
* Added a map to show where other stn are // refactored message adding to tables for performance, max 30.000 msg now

* debugging map failure

* debugging map failure

* debugging map failure

* fix Pipeline Modules n map Linux

* changed UI design to save some space. Made the UI more reactive for smaller screens. Maximized resolution at startup to the possible maximum of the current display of the user

* Docs added for new Features

* Added filters and sorters for Tropo reachability, AS availability and new big fields / locators. Added reachability band selector for tropo calculation based on a choosen band

* Fixed worked-23cm-tag when working with dxlog/n1mm logger

* delete not needed files from repo

* Reduced opentopo api calls // added 4 char locator new-filter // added new band and tropo filter and priority sorter // decreased map load

---------

Co-authored-by: Marc Froehlich <praktimarc@gmail.com>
2026-06-28 19:29:25 +02:00
Rsclub2_2 631b661265 fix flatpak key again. 2026-06-27 21:11:13 +02:00
Rsclub2_2 42d397ffad feat(flatpak): multi-OSTree pipeline — nightly, beta, stable
fix(flatpak): regenerate summary in publish jobs, add flatpak tooling + gpg key

Author: Philipp Wagner <philipp@wagnersnetz.de>
2026-06-27 20:19:01 +02:00
Rsclub2_2andMarc Froehlich 8413a1296d Feature/map view and filters (#40)
* Added a map to show where other stn are // refactored message adding to tables for performance, max 30.000 msg now

* debugging map failure

* debugging map failure

* debugging map failure

* fix Pipeline Modules n map Linux

---------

Co-authored-by: Marc Froehlich <praktimarc@gmail.com>
2026-06-23 01:12:02 +02:00
Rsclub2_2 3160f9558d Merge pull request #37 from Rsclub22/main
reworked Github Issues
2026-06-15 18:12:22 +02:00
Rsclub2_2 30da16b1ac Merge pull request #36 from Rsclub22/main
Added new way of handling issues
2026-06-15 18:00:29 +02:00
Rsclub2_2 62e1096ef9 Added new way of handling issues 2026-06-15 17:57:31 +02:00
Rsclub2_2 aa016d4772 Add Linux distro and Flatpak artifacts to CI pipelines (#8) (#35)
Fix Pipelines hopefully

again

nochmal ... :)

AAAA

BBBB

fix Flatpack from main

Flatpak again ....

flatpak github packages test

Flatpak?

flatpakref fork-ready

Install docs n fix

Desktop Entries
2026-06-15 17:39:31 +02:00
Rsclub2_2 4b9ffa5c5c Fix crash with to many messages (#30) (#31)
* Cleanup git files not needed

* WIP: fix #30 with limit to 10000 Messages with dequeList
2026-06-15 17:39:07 +02:00
Rsclub2_2 8d83f797df fix Template LaTeX (#33) 2026-04-19 13:12:42 +02:00
Rsclub2_2 e35dee55d1 Wintest improvements sked and options (#32)
* Improve Win-Test Integration in UI

* Rename Building Artifacts

* Document Changes

* Win-Test Fix QRG Sked
2026-04-19 13:00:26 +02:00
Rsclub2_2 e01cc3ca11 MacOS Building Pipeline (#29)
Mac OS Support (MacOS 13) in Pipeline.
2026-03-29 21:15:46 +02:00
Rsclub2_2 aaa5c1088a fix Wrapping of Buttons in Linux when wrapping is not needed 2026-03-28 23:58:45 +01:00
Rsclub2_2 178783aa8c fix Typo and add in JavaFX as requirement 2026-03-28 23:12:47 +01:00
Rsclub2_2 68d171e793 fix Nightly Documentation 2026-03-27 23:16:59 +01:00
Rsclub2_2 e4501e848a UpdateWiki 27.03.2026 2026-03-27 23:08:33 +01:00
Rsclub2_2 b16dd1303a Added recommended minimal Resolution of Display 2026-03-27 23:08:33 +01:00
Rsclub2_2 e5b30c3049 README.MD Updated 2026-03-27 01:23:18 +01:00
Rsclub2_2 318f3720b8 PDF User Manual Pipeline for use in Release and nightly Build 2026-03-27 01:23:18 +01:00
Rsclub2_2 db031bb5e3 Docs EN changed to include new Changes 2026-03-26 01:50:49 +01:00
Rsclub2_2 d635ee3fef Doku DE changed to include newest features. 2026-03-26 01:50:49 +01:00
Rsclub2_2 f93f3acbb0 Wiki Sync Pipelines
Wiki Sync fix

Wiki no longer empty commits

Add files via upload

a
2026-03-26 00:28:00 +01:00
Rsclub2_2 9ec17332e2 pre-Release-Pipeline 2026-03-26 00:28:00 +01:00
Rsclub2_2 6716751697 fix nightly pipelines 2026-03-26 00:28:00 +01:00
Rsclub2_2andGitHub Copilot d5b8508aa6 Win-Test: improve broadcast defaults and SKED workflow
Co-authored-by: GitHub Copilot <github-copilot[bot]@users.noreply.github.com>
2026-03-25 23:35:35 +01:00
Rsclub2_2andClaude Opus 4.6 c0b8aa61a9 Add Win-Test SKED push via UDP (ported from wtKST)
Implements sending SKEDs to Win-Test via the LOCKSKED/ADDSKED/UNLOCKSKED
UDP protocol sequence, ported from the C# wtSked class in wtKST.

New files:
- WinTestMessage.java: Win-Test network message format with checksum
- WinTestSkedSender.java: UDP broadcast sender for SKED messages

Modified:
- ChatController: addSked() now pushes to Win-Test when enabled
- ChatPreferences: new settings for broadcast address and sked push toggle

The feature is disabled by default (logsynch_wintestNetworkSkedPushEnabled=false).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 23:35:35 +01:00
Rsclub2_2 6be44bbea2 Fix WT Compile issues and prepare auto release pipeline (#13)
* Fixup WinTest Error

* Prepare CI/CD Auto Release Pipeline

* Fix CI/CD Components not running

* CI/CD Pre-Check n nighty and produce zip for more intutive User Design

* fix Version

* App Version Update.

* More Similar Naming to old Convention
2026-03-23 18:58:00 +01:00