FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
Review issues — fhsim_fishery

Findings from code review that await an owner decision or an implementation. Each row is one file in issues/details/, which holds the evidence, the effect, the possible fix, the test that would prove it and the risk. Resolved issues are kept in issues/resolved/ so that their numbers are never reused. Issues that concern a SimObject are also shown on that model's documentation page. Audit notes that are not issues are in issues/notes.md.

How to work an item

  1. Reproduce the Evidence at the file:line given in the detail file, at HEAD.
  2. For a blocked item, get the owner's answer to "Decision needed" first, then set Status to ready.
  3. Write the proving test, apply the fix, check the Risk paragraph.
  4. git mv the file to issues/resolved/, add a | Resolved | <commit>, <date> | row, delete the matching \xrefitem reviewissue "Review issues" "Review issues" \ref fhsim_fishery_issue_<ID> lines from the headers, rerun the script and commit it all together.

New issue: add issues/details/<slug>.md with the metadata table but no ID row; the script assigns the next free number, writes the heading and renames the file to <TAG>-<ID>-<slug>.md.

Legend

Tag Values
Class BUG code does something other than its documentation or sibling code says; KNOWN-LIMITATION behaviour gap by design or omission, document rather than fix silently; ARCHITECTURE structure, dependencies, build layout, dead code and stale artefacts; DOCUMENTATION missing or wrong documentation or example; TEST test coverage or infrastructure; API public name (port, state, parameter, registration string) whose change breaks input files; SECURITY credentials and supply chain
Severity 3 wrong numbers, a crash or a secret exposure reaches a user; 2 a documented interface does not work as documented; 1 tidiness, readers and tools only
Status blocked needs the owner decision named in the file; ready fully specified

Open issues (12)

ID Class Severity Status Models Title
FISH-0002 BUG 3 blocked Seine/Buoy SeineConnector Pos and Vel select from opposite sources for the same Connected flag
FISH-0004 BUG 3 blocked Trawl/TrawlDoorAddedFoil TrawlDoorAddedFoil discards its computed foil force and applies a hard-coded roll moment
FISH-0023 BUG 3 blocked Trawl/CenterWeight CenterWeight requires an Environment but damps against absolute velocity, ignoring the current
FISH-0027 ARCHITECTURE 3 blocked Outports hand out pointers to members that nothing requires the constructor to initialise
FISH-0005 BUG 2 blocked Trawl/TrawlDoorAddedFoil TrawlDoorAddedFoil FoilEnergyConsumed output is always zero
FISH-0006 BUG 2 blocked Trawl/TrawlDoorAddedFoil TrawlDoorAddedFoil interpolates the foil polar with the wrong array length
FISH-0012 BUG 2 blocked Seine/Operation SeineOperation hauls warps at a hard-coded 0.7 m/s while scheduling on WinchHaulSpeed
FISH-0018 BUG 2 ready Trawl/TrawlDoor Example.xml: a Door output at t=0 depends on process memory layout
FISH-0028 ARCHITECTURE 2 blocked Input files require the base SimObject library, which the package does not depend on
FISH-0013 ARCHITECTURE 1 blocked Remove the de-registered NetWithAttractor sources and the stale commented-out includes
FISH-0014 KNOWN-LIMITATION 1 blocked Trawl/Crowfoot Crowfoot header describes a state-based solution the code does not implement, and Example.xml passes three dead attributes
FISH-0017 DOCUMENTATION 1 blocked Seine/Vessel, Seine/Operation, Seine/Buoy, Seine/Cable No shipped input file exercises any Seine SimObject

Resolved issues (17)

ID Class Title Resolved File
FISH-0001 TEST Revive the test suite: no SimObject has any automated coverage pending, 2026-09-17 resolved/FISH-0001-test-suite-has-no-tests.md
FISH-0003 BUG Crowfoot ExternalVel output is always zero pending, 2026-09-17 resolved/FISH-0003-crowfoot-externalvel-always-zero.md
FISH-0007 DOCUMENTATION TrawlDoorAddedFoil documented input ports do not match the registered ones 82c8f64, 2026-09-15 resolved/FISH-0007-trawldooraddedfoil-documented-input-ports.md
FISH-0008 DOCUMENTATION TrawlDoorAddedFoil header example uses a wrong LibName and a lowercase type string 82c8f64, 2026-09-15 resolved/FISH-0008-trawldooraddedfoil-header-example-uses-a-wrong.md
FISH-0009 DOCUMENTATION examples/input/ValuesDisplay.xml references a stale instance name C 09db4fa, 2026-09-15 resolved/FISH-0009-examples-input-valuesdisplay-xml-references.md
FISH-0010 DOCUMENTATION ValuesDisplay documents NumSignals and a single In port; neither exists 81fc225, 2026-09-15 resolved/FISH-0010-valuesdisplay-documents-numsignals-and-a-single.md
FISH-0011 BUG SeineOperation overwrites MinWarpLength with a literal 20 after reading it pending, 2026-09-17 resolved/FISH-0011-seineoperation-minwarplength-overwritten.md
FISH-0015 DOCUMENTATION ToTrawlDoor's Roll, Pitch and AngleOfAttack output ports are undocumented 65e4104, 2026-09-15 resolved/FISH-0015-totrawldoors-roll-pitch-and-angleofattack-output.md
FISH-0016 ARCHITECTURE Crowfoot and TrawlDoorAddedFoil leak their heap allocations cca19cd, 2026-09-15 resolved/FISH-0016-crowfoot-and-trawldooraddedfoil-leak-their-heap.md
FISH-0019 DOCUMENTATION Every shipped trawl example references Environment/Basic from base, which no 3.x library registers pending, 2026-09-17 resolved/FISH-0019-trawl-examples-reference-environment-basic.md
FISH-0020 BUG ValuesDisplay deletes an uninitialized pointer when RenderInit never runs 55db44d, 2026-09-15 resolved/FISH-0020-valuesdisplay-deletes-uninitialized-pointer.md
FISH-0021 BUG PIDController Out port publishes uninitialised memory before the first accepted step pending, 2026-09-17 resolved/FISH-0021-pidcontroller-out-uninitialised-before-first-step.md
FISH-0022 TEST TrawlDoor angle of attack lands on the reverse-flow +/-pi branch, whose sign is decided by round-off pending, 2026-09-17 resolved/FISH-0022-trawldoor-angleofattack-reverse-flow-branch.md
FISH-0024 BUG SeineOperation reads m_buoyPos and m_lastCall before they are ever written pending, 2026-09-17 resolved/FISH-0024-seineoperation-buoypos-read-before-written.md
FISH-0025 BUG SeineOperation integrates warp length on solver call intervals instead of a state pending, 2026-09-17 resolved/FISH-0025-seineoperation-warplength-not-a-state.md
FISH-0026 BUG Actuator Power port publishes an uninitialised member until the first OdeFcn call pending, 2026-09-17 resolved/FISH-0026-actuator-power-uninitialised-until-first-odefcn.md
FISH-0029 BUG TrawlDoor AngleOfAttack samples the last ODE evaluation, not the observer's state pending, 2026-09-17 resolved/FISH-0029-angleofattack-sampled-from-last-odefcn-evaluation.md