Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
5bada50
Update version for dev
netniV Aug 22, 2026
ac12ed0
Add cross-platform notification audio cues
Guffawaffle Aug 29, 2026
05daae5
Warn when audio alerts lack toast hooks
Guffawaffle Aug 29, 2026
4eba957
Add All option for disabled audio events
Guffawaffle Aug 31, 2026
6ae3b52
Cover Fabric event object audio routes
Guffawaffle Aug 31, 2026
802e60f
Harden global audio suppression policy
Guffawaffle Aug 31, 2026
e116f9e
Match Spud x64 hook target resolution
Guffawaffle Aug 31, 2026
5dc6cb8
Trim global audio wildcard handling
Guffawaffle Sep 1, 2026
b39cf0a
Centralize toast audio alert configuration
Guffawaffle Sep 2, 2026
7e75d03
Merge centralized toast audio configuration
Guffawaffle Sep 2, 2026
6d5a0d7
Merge branch 'dev' into feature/audio-disable-all
Guffawaffle Sep 2, 2026
6e638d9
Merge branch 'dev' into feature/cross-platform-audio-alerts
Guffawaffle Sep 2, 2026
218c594
Refine notification audio catalog and initialization
Guffawaffle Sep 3, 2026
d2c110a
Merge remote-tracking branch 'guffawaffle/feature/cross-platform-audi…
Guffawaffle Sep 3, 2026
8162591
Harden audio wildcard parsing
Guffawaffle Sep 4, 2026
898b040
Merge branch 'dev' into feature/cross-platform-audio-alerts
netniV Sep 5, 2026
43284c9
Merge dev into audio alerts and preserve example cue settings
Guffawaffle Sep 6, 2026
cfe2227
Merge branch 'dev' into feature/audio-disable-all
Guffawaffle Sep 6, 2026
3746da9
Merge branch 'dev' into feature/cross-platform-audio-alerts
Guffawaffle Sep 7, 2026
7db63d0
fix(daily-faction-bulk-claim): only filter federation/klingon/romulan…
GingerNinja-STFC Sep 13, 2026
7933965
Merge branch 'dev' into feature/cross-platform-audio-alerts
Guffawaffle Sep 16, 2026
1c29d3f
Add some haven stuff :D (#288)
netniV Sep 17, 2026
fd3641a
Update loading screen for M95
netniV Sep 17, 2026
ec1ba32
Prepare for v1.1.8 release
netniV Sep 17, 2026
4bf238c
Merge branch 'main' into dev
netniV Sep 17, 2026
bfa22bb
fix xcode 27 build problem for launcher UI by making sure xmake loads…
a5ehren Sep 17, 2026
5ae35fb
Merge commit '7933965bf7b563997de38cbfe2cba6cec24d531b' into testing/…
Guffawaffle Sep 18, 2026
da3cef7
Merge commit 'cfe2227a78c65136ea2f32f340c59ad95951f069' into testing/…
Guffawaffle Sep 18, 2026
4e73a1e
Add fleet transition notifications
Guffawaffle Sep 4, 2026
edb06bf
Prevent duplicate depletion notifications
Guffawaffle Sep 4, 2026
d16e841
Restore independent fleet audio cues on the observer consumer
Guffawaffle Sep 5, 2026
e343415
docs: describe focused macOS fleet audio baseline
Guffawaffle Sep 18, 2026
97840ed
Merge commit 'bfa22bbd850f4e843daad985627ed6c749d5ee55' into testing/…
Guffawaffle Sep 18, 2026
88ccad0
docs: align Mac audio test minimum with launcher fix
Guffawaffle Sep 18, 2026
1b3b48e
fix: align launcher metadata with macOS 14.6 target
Guffawaffle Sep 18, 2026
0b1fffd
Recover fleet arrival cues from native warp history
Guffawaffle Sep 18, 2026
5ed2fbd
Retain charging journeys across initial observation
Guffawaffle Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ concurrency:
cancel-in-progress: true

env:
XMAKE_VERSION: "3.1.0"
XMAKE_VERSION: "3.1.1"
# Bump this when a dependency cache must be invalidated manually.
XMAKE_CACHE_SCHEMA: "v4"
# Narrow protobuf-only compiler-cache experiment.
PROTOBUF_SCCACHE_VERSION: "v0.17.0"
PROTOBUF_SCCACHE_VERSION: "v0.18.0"
PROTOBUF_SCCACHE_SCHEMA: "v1"
STFC_PROTOBUF_SCCACHE: "1"
# Keep sccache local; actions/cache owns persistence explicitly.
Expand Down Expand Up @@ -323,7 +323,7 @@ jobs:

runs-on: ${{ matrix.runner }}
env:
MACOSX_DEPLOYMENT_TARGET: "13.5"
MACOSX_DEPLOYMENT_TARGET: "14.6"
SWIFT_MODULE_CACHE_SCHEMA: "v1"
SCCACHE_DIR: ${{ github.workspace }}/build/.protobuf-sccache
SCCACHE_CACHE_SIZE: "1G"
Expand Down Expand Up @@ -739,26 +739,26 @@ jobs:
shell: bash
run: |
set -euo pipefail

APP="build/macosx/arm64/release/STFC Community Mod.app"

check_linkage() {
local binary="$1"
local deps

echo
echo "==> $binary"
deps="$(otool -L "$binary")"
printf '%s\n' "$deps"

if printf '%s\n' "$deps" | grep -E \
'/opt/homebrew/|/usr/local/(opt|Cellar)/|(^|/)libssl(\.[0-9]+)*\.dylib|(^|/)libcrypto(\.[0-9]+)*\.dylib|(^|/)libcurl(\.[0-9]+)*\.dylib'
then
echo "::error file=$binary::Forbidden dynamic dependency detected"
return 1
fi
}

check_linkage "$APP/Contents/MacOS/macOSLauncher"
check_linkage "$APP/Contents/stfc-community-mod-loader"
check_linkage "$APP/Contents/libstfc-community-mod.dylib"
Expand Down
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ This project uses **XMake** (not CMake). All build configuration is in `xmake.lu
```bash
# Configure and build (command line)
xmake # Build default target
xmake f -p macosx -a arm64 -m debug --target_minver=13.5 # Configure for macOS ARM debug
xmake f -p macosx -a arm64 -m debug --target_minver=14.6 # Configure for macOS ARM debug
xmake f -p windows -m release # Configure for Windows release

# Generate Visual Studio solution
Expand All @@ -40,7 +40,7 @@ Delete the `build/` folder to reset. Also delete `.vs/` for a full Visual Studio

- Keep changes scoped. Do not stage unrelated dirty files or generated artifacts unless the user explicitly asks.
- Before finishing C++ or patch work, run `git diff --check` and the narrowest relevant xmake build.
- For macOS core mod changes, use `xmake f -p macosx -a arm64 -m debug --target_minver=13.5 -y && xmake -y mods`.
- For macOS core mod changes, use `xmake f -p macosx -a arm64 -m debug --target_minver=14.6 -y && xmake -y mods`.
- Review the final diff for risky hooks, platform guards, config default mismatches, and missing example config updates.
- If a subtree such as `macos-launcher/` needs specialized guidance, prefer a nested `AGENTS.md` near that code instead of overloading this root file.

Expand Down
Binary file added assets/LoadingScreens/M95 Loading Screen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/loadingscreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
50 changes: 50 additions & 0 deletions docs/macos-fleet-audio-test.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Focused macOS fleet-audio baseline

`testing/macos-fleet-audio` combines upstream 1.1.8.0 (`4bf238c1`) with:

- Cross-platform notification audio (#253, `7933965b`).
- The named-event `All` audio filter (#259, `cfe2227a`).
- Fleet-transition notifications (#268 consumer commits `d5c8a010`, `49d8bc75`).
- Independent generated fleet audio (`ae7e64bc`).
- Xcode launcher build compatibility (#291, `bfa22bbd`), including the macOS 14.6
deployment target and updated CI tools.

The Fleet Watch observer already comes from upstream. This branch does not include
the rest of the personal play stack and does not yet change arrival detection.
The component revisions above are pinned; later feeder-branch refreshes do not
automatically change this test build.

## Testing

Requires macOS 14.6 or newer. Use the universal macOS installer or mod archive from this branch's successful
Build run. Back up the existing mod and TOML first, close the game before replacing
the mod, and retain the exact run URL with the results. Do not switch builds during
a comparison. Verify the startup log identifies the installed test build.

First test with the same settings that showed the problem. Record the relevant
`[audio]` settings and whether it is the generated cue or the original game sound
that goes missing. `All` affects the named Fabric event route, not every game audio
path; generated mod cues remain independent.

For an isolated generated-arrival test, edit these keys inside the existing
`[audio]` section (do not append a duplicate section):

```toml
disabled_events = "All"
alert_fleet_arrived_in_system = "arrival"
alert_fleet_arrived_at_destination = "none"
```

Temporarily set other `alert_*` keys to `"none"` if isolating overlapping sounds.
Fleet cues do not require desktop notifications or toast banner hooks. There is no
generated departure cue in this baseline.

Compare short and long warps, one fleet and several fleets, viewed and off-screen
destinations, and a focused versus background game window. For a missed cue, record
the approximate time, fleet, destination, warp duration, visible fleet state and
whether another alert played. Keep the session log. `trace_events = true` logs named
game audio events only; it does not trace generated fleet transitions.

Restore the previous mod and configuration to undo the test. Build success is not
macOS runtime validation: the purpose of this baseline is to establish a repeatable
case before stacking a separate arrival correction.
56 changes: 39 additions & 17 deletions example_community_patch_settings_da.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# | #*** # # #*** # * #** #*** |
# | |
# +--------------------------------------------------------------+
# Oprettet den 2026-09-05T13:04:20.428Z
# Oprettet den 2026-09-17T11:10:54.288Z
#
# Denne konfigurationsfil blev oprettet af https://modconfig.pages.dev
# og leveres, som den er. Hvis der er problemer med STFC Community Mod
Expand All @@ -17,7 +17,7 @@
# Discord : https://discord.gg/PrpHgs7Vjs
# GitHub : https://github.com/netniV/stfc-mod
#
# Dagens konfigurationsfil præsenteres af bogstavet A og tallet 6
# Dagens konfigurationsfil præsenteres af bogstavet I og tallet 6
#

# <[=======================================]>
Expand All @@ -31,12 +31,30 @@
# <[=======================================]>

[audio]
# Comma-separated audio event names to suppress; leave blank to allow all audio events
# Comma-separated audio event names to suppress; use "All" as a wildcard for named events handled by this filter
disabled_events = ""

# Write audio event names to the trace log for troubleshooting
trace_events = false

# Optional generated notification cues; "none" disables an alert.
# Available sounds: default, info, success, warning, alarm, arrival, soft, ping, repair
# Requires patches.toastbannerhooks = true.
alert_victory = "none"
alert_defeat = "none"
alert_armada_created = "none"
alert_armada_battle_won = "none"
alert_armada_battle_lost = "none"

# Fleet cues are independent of desktop notifications and toastbannerhooks.
# Use the sound names above; "none" disables a cue. Windows and macOS.
alert_fleet_arrived_in_system = "none"
alert_fleet_arrived_at_destination = "none"
alert_fleet_started_mining = "none"
alert_fleet_node_depleted = "none"
alert_fleet_docked = "none"
alert_fleet_repair_complete = "none"

# <[======================================================================================================]>
#
# ***** * * *
Expand Down Expand Up @@ -403,6 +421,9 @@ set_hotkeys_disabled = "CTRL-ALT-MINUS"
# CTRL-ALT-=
set_hotkeys_enabled = "CTRL-ALT-="

# Vis eller skjul genvejstip
toggle_shortcut_hints = "HOME"

# Subgroup: Queue & Primary
# -------------------------

Expand Down Expand Up @@ -457,6 +478,9 @@ show_artifacts = "SHIFT-I"
# Vis udehold
show_awayteam = "T"

# Åbn indbakken med kamprapporter
show_battlelogs = "SHIFT-B"

# Vis bogmærker
show_bookmarks = "B"

Expand Down Expand Up @@ -496,6 +520,9 @@ show_galaxy_native = "CTRL-G"
# Gå til gaver
show_gifts = "/"

# Åbn Haven
show_haven = "ALT-H"

# Gå til beholdning
show_inventory = "I"

Expand All @@ -520,23 +547,14 @@ show_scrapyard = "Y"
# Gå til indstillinger
show_settings = "SHIFT-S"

# Slå genvejstips på skærmen til/fra (viser mod-genveje, hvor de understøttes)
# NONE deaktiverer mod-tiphooks og tekstcache; tildel en tast for at aktivere (kræver genstart).
toggle_shortcut_hints = "HOME"

# Symboler i mærker bruger AutoHotkey-notation: ^ Ctrl, ! Alt, + Shift, # Win/Command

# Gå til administration af skibe
show_ships = "N"
# Åbn valget af fredsskjolde
show_shields = "CTRL-S"

# Åbn skibsværftets Byg skib-skærm
show_shipconstruction = "SHIFT-N"

# Åbn valget af fredsskjolde
show_shields = "CTRL-S"

# Åbn indbakken med kamprapporter
show_battlelogs = "SHIFT-B"
# Gå til administration af skibe
show_ships = "N"

# Stationens ydre
show_stationexterior = "SHIFT-G"
Expand Down Expand Up @@ -682,6 +700,10 @@ disabled_banner_types = ""
# Specifies banner types that should trigger notifications (comma separated)
notify_banner_types = ""

# Fleet events that should trigger Windows notifications (comma separated, or "All")
# Options: ArrivedInSystem, ArrivedAtDestination, StartedMining, NodeDepleted, Docked, RepairComplete
notify_fleet_events = ""

# Subgroup: Chat
# --------------

Expand Down Expand Up @@ -866,7 +888,7 @@ url = ""
# -----------------

# Hvor længe cachede elementer skal bevares (ms)
resolver_cache_ttl = "300"
resolver_cache_ttl = 300

# Skal SSL-certifikater kontrolleres?
verify_ssl = true
Expand Down
55 changes: 39 additions & 16 deletions example_community_patch_settings_de.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# | #*** # # #*** # * #** #*** |
# | |
# +--------------------------------------------------------------+
# Erstellt am 2026-09-05T13:04:20.385Z
# Erstellt am 2026-09-17T11:10:54.237Z
#
# Diese Konfigurationsdatei wurde von https://modconfig.pages.dev erstellt
# und wird ohne Gewähr bereitgestellt. Bei Problemen mit dem STFC Community Mod,
Expand All @@ -17,7 +17,7 @@
# Discord : https://discord.gg/PrpHgs7Vjs
# GitHub : https://github.com/netniV/stfc-mod
#
# Die heutige Konfigurationsdatei wird Ihnen präsentiert vom Buchstaben I und der Zahl 2
# Die heutige Konfigurationsdatei wird Ihnen präsentiert vom Buchstaben S und der Zahl 9
#

# <[=======================================]>
Expand All @@ -31,12 +31,30 @@
# <[=======================================]>

[audio]
# Comma-separated audio event names to suppress; leave blank to allow all audio events
# Comma-separated audio event names to suppress; use "All" as a wildcard for named events handled by this filter
disabled_events = ""

# Write audio event names to the trace log for troubleshooting
trace_events = false

# Optional generated notification cues; "none" disables an alert.
# Available sounds: default, info, success, warning, alarm, arrival, soft, ping, repair
# Requires patches.toastbannerhooks = true.
alert_victory = "none"
alert_defeat = "none"
alert_armada_created = "none"
alert_armada_battle_won = "none"
alert_armada_battle_lost = "none"

# Fleet cues are independent of desktop notifications and toastbannerhooks.
# Use the sound names above; "none" disables a cue. Windows and macOS.
alert_fleet_arrived_in_system = "none"
alert_fleet_arrived_at_destination = "none"
alert_fleet_started_mining = "none"
alert_fleet_node_depleted = "none"
alert_fleet_docked = "none"
alert_fleet_repair_complete = "none"

# <[=======================================]>
#
# **** ** **
Expand Down Expand Up @@ -403,6 +421,9 @@ set_hotkeys_disabled = "CTRL-ALT-MINUS"
# STRG-ALT-=
set_hotkeys_enabled = "CTRL-ALT-="

# Tastenkürzel-Hinweise ein- oder ausblenden
toggle_shortcut_hints = "HOME"

# Subgroup: Warteschlange und Primäraktion
# ----------------------------------------

Expand Down Expand Up @@ -457,6 +478,9 @@ show_artifacts = "SHIFT-I"
# Außenteam anzeigen
show_awayteam = "T"

# Den Posteingang für Kampfberichte öffnen
show_battlelogs = "SHIFT-B"

# Lesezeichen anzeigen
show_bookmarks = "B"

Expand Down Expand Up @@ -496,6 +520,9 @@ show_galaxy_native = "CTRL-G"
# Zu den Geschenken
show_gifts = "/"

# Haven öffnen
show_haven = "ALT-H"

# Zum Inventar
show_inventory = "I"

Expand All @@ -520,22 +547,14 @@ show_scrapyard = "Y"
# Zu den Einstellungen
show_settings = "SHIFT-S"

# Bildschirmhinweise für Tastenkürzel umschalten (zeigt unterstützte Mod-Tastenkürzel)
# NONE deaktiviert Mod-Hinweis-Hooks und den Textcache; zum Aktivieren eine Taste zuweisen (Neustart erforderlich).
toggle_shortcut_hints = "HOME"
# Hinweissymbole verwenden die AutoHotkey-Schreibweise: ^ Strg, ! Alt, + Umschalt, # Win/Befehl

# Zur Schiffsverwaltung
show_ships = "N"
# Die Auswahl für Friedensschilde öffnen
show_shields = "CTRL-S"

# Den Bildschirm Schiff bauen der Werft öffnen
show_shipconstruction = "SHIFT-N"

# Die Auswahl für Friedensschilde öffnen
show_shields = "CTRL-S"

# Den Posteingang für Kampfberichte öffnen
show_battlelogs = "SHIFT-B"
# Zur Schiffsverwaltung
show_ships = "N"

# Stationsaußenansicht
show_stationexterior = "SHIFT-G"
Expand Down Expand Up @@ -681,6 +700,10 @@ disabled_banner_types = ""
# Specifies banner types that should trigger notifications (comma separated)
notify_banner_types = ""

# Fleet events that should trigger Windows notifications (comma separated, or "All")
# Options: ArrivedInSystem, ArrivedAtDestination, StartedMining, NodeDepleted, Docked, RepairComplete
notify_fleet_events = ""

# Subgroup: Chat
# --------------

Expand Down Expand Up @@ -865,7 +888,7 @@ url = ""
# ------------------

# Speicherdauer zwischengespeicherter Einträge (ms)
resolver_cache_ttl = "300"
resolver_cache_ttl = 300

# Sollen SSL-Zertifikate überprüft werden?
verify_ssl = true
Expand Down
Loading
Loading