Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
b266794
Sync dock with Manage Ships and try reset stuck abilities
netniV Oct 16, 2026
11b738a
Protect and recover Kirshara queues after target or address changes (…
Guffawaffle Oct 16, 2026
b4a43a6
feat: hide player title rows in chat messages (#329)
GingerNinja-STFC Oct 16, 2026
c0e8dfa
feat(reveal-confirmation): auto-confirm the Excelsior's Decloaking De…
GingerNinja-STFC Oct 16, 2026
8844639
Make primary-action target visibility protection opt-in (#328)
Guffawaffle Oct 16, 2026
f89bc47
feat: pin or unpin fleet dock ships with SHIFT+click (#330)
GingerNinja-STFC Oct 16, 2026
c76b411
Add native Mod Settings with shared definitions and checked persistence
Guffawaffle Oct 17, 2026
ac73537
Handle settings save failures, restart gates and input release
Guffawaffle Oct 17, 2026
1f19332
Retain settings search across focus loss and classify extended zoom a…
Guffawaffle Oct 17, 2026
3a26e8c
Parse settings decimals on supported macOS deployment targets
Guffawaffle Oct 17, 2026
3d43f12
Correct settings persistence feedback and catalog capabilities
Guffawaffle Oct 17, 2026
2cac8c2
Clarify when session-only save feedback is available
Guffawaffle Oct 17, 2026
c4bf35c
Divsion 12 loading screen
netniV Oct 17, 2026
44958fe
feat: station-interior zoom-out (interior_zoom_scale) (#332)
kcid9660 Oct 17, 2026
270c876
Update all the mod example files
netniV Oct 17, 2026
5e72654
Fix issue with PC player titles
netniV Oct 17, 2026
c7f6974
Hook the shared player-title implementation instead of bind thunks
Guffawaffle Oct 18, 2026
1efac2a
Fix issue with PC player titles
netniV Oct 17, 2026
f2c6ced
Hook the shared player-title implementation instead of bind thunks
Guffawaffle Oct 18, 2026
66e9b04
Merge shared chat hook fix and reconcile upstream settings coverage
Guffawaffle Oct 18, 2026
3e67155
Merge upstream settings PR 333 into downstream play
Guffawaffle Oct 18, 2026
edc1459
Restore downstream Mac queue paths and settings update dispatch
Guffawaffle Oct 18, 2026
fd2bf85
Classify zoom shortcuts with their extended action availability
Guffawaffle Oct 18, 2026
15e4357
Document downstream settings coverage counts
Guffawaffle Oct 18, 2026
e6d5ed7
Share the orbit constraint detour between Haven and interior zoom
Guffawaffle Oct 18, 2026
5ed1b79
Use the shared native pointer conversion for Mac hook validation
Guffawaffle Oct 18, 2026
feb91ca
Include native hook extent declarations in hotkeys on Mac
Guffawaffle Oct 18, 2026
d039a84
Fix persistence fixtures for current settings writer API
Guffawaffle Oct 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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ This project is maintained solely at my own cost of time, energy and money. Any

## Features

- Change preferences and shortcuts in the game's **Settings → Mod Settings**; see [in-game settings](docs/MOD_SETTINGS.md).
- Set system UI scale + adjustment factor
- Set viewer UI scale
- Set system zoom
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 17 additions & 5 deletions docs/FASTER_QUEUE_RECOVERY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,26 @@

When a queued target disappears while a course request is outstanding, the game can remove that target before its failed response arrives. Native failure handling then attempts the removal again. Since it did not remove the front entry this time, it can leave the next target waiting for the watchdog.

Enable the opt-in recovery at startup:
Recovery is enabled by default as part of the combined Kir'Shara fixes:

```toml
[control]
faster_queue_recovery = true
kirshara_fixes = true
```

The feature also respects `control.queue_enabled`. Hooks are supported on Windows x64 when the required method signatures and queue layout are compatible. Other platforms do not install these hooks; incompatible Windows layouts log an unavailable message and retain native behavior.
Following #313, default-enabled `[patches].actionqueuerecoveryhooks` independently controls installation. Changing that installation switch requires a restart. Installed callbacks check the current `control.kirshara_fixes` and `control.queue_enabled` preferences; changing TOML still requires reload/restart.

The feature also respects `control.queue_enabled`. Hooks are compiled for Windows x64 and macOS ARM64/x86_64 when the required method signatures and queue layout are compatible. Other platforms do not install these hooks; incompatible layouts log an unavailable message and retain native behavior. macOS native fit and gameplay remain unverified.

The previous `faster_queue_recovery`, `thin_queue_protection`, `queue_address_guard`
and `advanced.queue.thin_queue_protection` settings no longer control these features.
Use the single `kirshara_fixes` switch; its default is true. A legacy-only configuration
logs this replacement at startup. No existing config file is rewritten automatically.

Toggling queue entry off invalidates only the mod's pending recovery tracking. It
does not clear native target queues or stop their native processing. Forgetting the
tracking prevents an old course response from authorizing a later recovery after
the queue is toggled back on.

## Behavior

Expand All @@ -22,7 +34,7 @@ The adapter records the latest engagement attempt for up to eight fleets, using

The request record is consumed once. The native planner selects and validates the next target. The mod does not force ship state, clear engagement flags, change retry counts, or remove targets. If another fleet still queues the target, the native cross-fleet removal path remains responsible.

Queue storage is bounded and validated. Unknown layouts/content are ineligible. Expired/replaced requests release their weak handles; native session cleanup clears all records. A native attempt returning skip/stop cancels only its own record, preserving newer reentrant attempts.
Queue storage is bounded and validated. Unknown layouts/content are ineligible. Expired/replaced requests release their weak handles; native session cleanup clears all records. Engage, Retry and Course discard pending recovery records when they observe disabled behavior. Both Toggle Queue transitions also clear them, so an off/on toggle cannot reuse authorization from before the toggle. A native attempt returning skip/stop cancels only its own record, preserving newer reentrant attempts.

There is no watchdog hook, frame scan, timer, background worker, or per-engagement logging. Queue inspection occurs in existing callbacks; all-queue inspection runs only for a potentially eligible failed response. Response matching is not a server-issued request ID, so delayed same-target responses remain an interoperability limitation.

Expand All @@ -34,7 +46,7 @@ The hooked methods are `TryPlanPathAndEngageTarget`, `ShouldRetryFailedSetCourse

The course event is a 24-byte value type, with fleet ID at 0, success/recall at 8/9 and boxed target at 16. Metadata field offsets include the boxed object header. The native retry handler is called synchronously inside the course handler; returning true selects its existing planner branch.

**THIS WAS FIXED BY SCOPELY:** the older off-screen Kir'Shara combat-completion repair is obsolete. Remove that workaround and its `kirshara_queue_repair` setting; it is not a prerequisite for Faster Queue Recovery. This feature addresses only the separate unavailable-target/course-response race described above.
The older off-screen Kir'Shara combat-completion repair was fixed by Scopely. That workaround and its `kirshara_queue_repair` setting have already been removed; neither is a prerequisite for Faster Queue Recovery. This feature addresses only the separate unavailable-target/course-response race described above.

## Validation

Expand Down
Loading
Loading