- Current client has Repair Pack input/menu state and simulation healing but no
repair-beam rendering path or dedicated repair sound in `audio.ts`.
- Repro: equip Repair Pack at a powered inventory station, aim within 10 m of a
damaged friendly turret, hold R. Healing works but is hard to perceive.
- Acceptance: source repair weapon/beam and sound, target/range/energy feedback,
and correct start/stop on release, occlusion, depletion, death and menu opening.
Continuation context: [docs/ISSUES.md](https://github.com/STRML/clans/blob/main/docs/ISSUES.md).
Beam, HUD feedback and lifecycle gating are in. What remains is audio only: the beam loop is wired but silent because no source recording exists, and the repository's rule is not to synthesize one. `packages/client/src/audio.ts:80-85` records that the game-data volume carries no repair-beam sample; `assets/out/katabatic/audio/repair-beam.m4a` is absent.
Note for the record: the second residual previously listed here, that player-candidate repair ignores terrain occlusion, is no longer true as of this commit. `packages/sim/src/repair.ts:97` gates the player candidate on `hasRepairLineOfSight`, so occlusion now applies to all four repair target kinds.
---
Status verified against the code at `d1ba6db` by an automated sweep over this backlog. Left open deliberately.
Correcting an earlier comment on this issue: it said the game data carries no repair-beam sample. **That was wrong.** The recording is there and always was -- `fx/packs/repair_use.wav`, which `packs/repairpack.cs:33-39` defines as `RepairPackFireSound` with `description = CloseLooping3d` and assigns to the beam's firing state at `:153`. The failure was our own manifest never listing it, which made the client's already-correct loop resolve to silence.
It is now listed and wired, along with the pack's activate one-shot (`packs.repairPackOn.wav`, `repairpack.cs:25-31`), and the two comments in `packages/client/src/audio.ts` that claimed no such sample exists are gone.
The other residual this issue named, that player-candidate repair ignored terrain occlusion, was fixed earlier: `packages/sim/src/repair.ts` gates the player candidate on `hasRepairLineOfSight`, so occlusion applies to all four repair target kinds.
What remains is not code: the perceptual listen. The issue's acceptance includes hearing the beam in a real session, and no test can assert that. Left open for that reason.