|
FhSim
3.1.0
Marine systems simulation
|
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.
file:line given in the detail file, at HEAD.blocked item, get the owner's answer to "Decision needed" first, then set Status to ready.git mv the file to issues/resolved/, add a | Resolved | <commit>, <date> | row, delete the matching \xrefitem reviewissue "Review issues" "Review issues" \ref fhsim_base_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.
| 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 |
| ID | Class | Severity | Status | Models | Title | |—|—|—|—|—|—|
| ID | Class | Title | Resolved | File |
|---|---|---|---|---|
| BASE-0001 | API | TorpedoAnchor registers its angular-velocity output port as lowercase omega | 4fa41d3, 2026-09-16 | resolved/BASE-0001-torpedoanchor-omega-port-lowercase.md |
| BASE-0002 | BUG | TorpedoAnchor documents a ShankFlukeAngle parameter it never reads | e2dad78, 2026-09-15 | resolved/BASE-0002-torpedoanchor-documents-a-shankflukeangle-parameter.md |
| BASE-0003 | DOCUMENTATION | CLinearSpring documents two output ports it never registers | e58d24e, 2026-09-15 | resolved/BASE-0003-clinearspring-documents-two-output-ports.md |
| BASE-0004 | DOCUMENTATION | CLowPass claims no initial conditions but seeds its state from its input | 8a8d9e6, 2026-09-15 | resolved/BASE-0004-clowpass-claims-no-initial-conditions.md |
| BASE-0005 | DOCUMENTATION | Shipped models say LibName="base", all documentation says LibName="fhsim_base" | 4fa41d3, 2026-09-16 | resolved/BASE-0005-libname-base-versus-fhsim-base.md |
| BASE-0006 | DOCUMENTATION | CNorrbinTanker's option tables are an unfilled template | 22efd02, 2026-09-15 | resolved/BASE-0006-cnorrbintankers-option-tables-are-an-unfilled.md |
| BASE-0007 | BUG | KalmanPendulum documents AngleVelocityNoise; the code reads AngularVelocityNoise, and MeasurementNoise is undocumented | d718b26, 2026-09-15 | resolved/BASE-0007-kalmanpendulum-documents-anglevelocitynoise-the-code-reads.md |
| BASE-0008 | API | C6DBody: registered state name Quater — keep or rename? | a2da710, 2026-09-16 | resolved/BASE-0008-c6dbody-quater-state-name.md |
| BASE-0009 | DOCUMENTATION | CDistArrow and CSimpleBillboardArrow document TextSize; both read TxtSize | 939afb4, 2026-09-15 | resolved/BASE-0009-cdistarrow-and-csimplebillboardarrow-document-textsize-both.md |
| BASE-0010 | DOCUMENTATION | CCameraController2 documents a Times parameter; the code reads Time | 939afb4, 2026-09-15 | resolved/BASE-0010-ccameracontroller2-documents-a-times-parameter.md |
| BASE-0011 | BUG | CDistArrow binds its PosA and PosB input ports to the opposite members | 4fa41d3, 2026-09-16 | resolved/BASE-0011-cdistarrow-posa-posb-swapped.md |
| BASE-0012 | DOCUMENTATION | CIntegrator has an undocumented ICFromPort parameter and a conditional IC input port | 8a8d9e6, 2026-09-15 | resolved/BASE-0012-cintegrator-has-an-undocumented-icfromport-parameter.md |
| BASE-0013 | DOCUMENTATION | VirtualCurrent reads an undocumented MaximumCurrent parameter | dfbac9c, 2026-09-15 | resolved/BASE-0013-virtualcurrent-reads-an-undocumented-maximumcurrent-parameter.md |
| BASE-0014 | DOCUMENTATION | CSignalList reads an undocumented PortWidth parameter | dfbac9c, 2026-09-15 | resolved/BASE-0014-csignallist-reads-an-undocumented-portwidth-parameter.md |
| BASE-0015 | DOCUMENTATION | HydroCable registers two undocumented output ports PosA and PosB | e58d24e, 2026-09-15 | resolved/BASE-0015-hydrocable-registers-two-undocumented-output-ports.md |
| BASE-0016 | ARCHITECTURE | Samplifier registers a SamplifierDummy state while documenting no initial conditions | 8a8d9e6, 2026-09-15 | resolved/BASE-0016-samplifier-registers-a-samplifierdummy-state-while.md |
| BASE-0017 | DOCUMENTATION | The visualisation-only Material parameter is undocumented in three classes | e2dad78, 2026-09-15 | resolved/BASE-0017-the-visualisation-only-material-parameter.md |
| BASE-0018 | DOCUMENTATION | CDemux's parameter table misspells the OutPortWidth<N> range | dfbac9c, 2026-09-15 | resolved/BASE-0018-cdemuxs-parameter-table-misspells-the-outportwidth.md |
| BASE-0019 | BUG | FlukeAnchor registers its quaternion state with no default, unlike TorpedoAnchor | 4fa41d3, 2026-09-16 | resolved/BASE-0019-flukeanchor-quaternion-no-default.md |
| BASE-0020 | DOCUMENTATION | Indexed states are documented as Name[i] but registered as Name1 .. NameN | 1c6ea37, 2026-09-15 | resolved/BASE-0020-indexed-states-are-documented-as-name.md |