Skip to content

WasmSequencer: Fix seqDoneOut reply - #6001

Open
Kronos3 wants to merge 3 commits into
nasa:develfrom
Kronos3:fix-seq-done-out
Open

Kronos3 wants to merge 3 commits into
nasa:develfrom
Kronos3:fix-seq-done-out

Conversation

@Kronos3

@Kronos3 Kronos3 commented Sep 20, 2026

Copy link
Copy Markdown
Collaborator
Related Issue(s) Closes #5906
Has Unit Tests (y/n) y
Documentation Included (y/n) y
Generative AI was used in this contribution (y/n) y

Change Description

The seqDoneOut port was not being invoked in all cases where a sequence was dispatched from a seqRunIn port. This PR fixes that. It also fixes some inconsistencies in the fprime.h header and adds some static assertions to validate that fprime.h is in sync with the framework.

Rationale

Bug

Testing/Review Recommendations

Future Work

N/A

AI Usage (see policy)

Claude Code was used to add tests and validate the fixes.

@github-actions

github-actions Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Coverage report — base devel

Overall (line): 85.11% → 85.11% (+0.00)
Regression threshold: 0.50% (line).

Regressions

(none over threshold)

Modules changed

Module Line Δ Function Δ Branch Δ
Os/Generic/Types 91.79 -0.35 92.86 +0.00 74.77 -0.93
Os/Generic 90.14 -0.20 89.13 +0.00 75.29 -0.38
Svc/WasmSequencer 97.82 +0.07 100.00 +0.00 92.79 +0.62
Fw/DataStructures 97.87 +0.18 97.14 +0.00 82.48 +0.36

New modules

Module Line Function Branch
Fw/Prm 0.00 0.00 0.00

Modules without UTs

CFDP/Checksum/GTest, Drv/LinuxGpioDriver, Drv/LinuxI2cDriver, Drv/LinuxSpiDriver, Drv/Ports/DataTypes, Drv/PosixUartDriver, FppTestProject/FppTest/topology/async, FppTestProject/FppTest/topology/components/Comp, FppTestProject/FppTest/topology/components/Framework, FppTestProject/FppTest/topology/components/Receiver, FppTestProject/FppTest/topology/components/Sender, FppTestProject/FppTest/topology/guarded, FppTestProject/FppTest/topology/sync, FppTestProject/FppTest/topology/top_ports, FppTestProject/FppTest/topology/types, Fw/Com, Fw/Comp, Fw/FilePacket/GTest, Fw/Fpy, Fw/Obj, Fw/Port, Fw/Sm, Fw/Test, Fw/Types/GTest, Os/Models, Svc/Ccsds/Types, Svc/Ccsds/Utils, Svc/FatalHandler, Svc/Subtopologies/CdhCore, Svc/Subtopologies/ComCcsds, Svc/Subtopologies/ComCcsdsSdls, Svc/Subtopologies/ComFprime, Svc/Subtopologies/ComLoggerTee, Svc/Subtopologies/DataProducts, Svc/Subtopologies/DpCompression, Svc/Subtopologies/FileHandling, Svc/Subtopologies/FileHandlingCfdp, Svc/Subtopologies/FileHandlingCfdp/FileHandlingCfdpConfig, TestDeploymentsProject/Ref/DpDemo, TestDeploymentsProject/Ref/PingReceiver, TestDeploymentsProject/Ref/RecvBuffApp, TestDeploymentsProject/Ref/SendBuffApp, TestDeploymentsProject/Ref/Top, TestDeploymentsProject/Ref/TypeDemo, cmake/test/data/TestConfigDeployment, cmake/test/data/TestDeployment/TestBuildAutocoder, cmake/test/data/TestDeployment/TestDuplicateDirective, cmake/test/data/TestDeployment/TestHeaderAutocoder, cmake/test/data/TestDeployment/TestLinkDepends, cmake/test/data/TestDeployment/TestRelative, cmake/test/data/test-fprime-library/TestLibrary/TestComponent, cmake/test/data/test-fprime-library2/TestLibrary2/TestComponent

Comment thread Svc/WasmSequencer/WasmSequencer.hpp
Comment thread Svc/WasmSequencer/WasmSequencerHelpers.cpp
ASSERT_CMD_RESPONSE_SIZE(0);
}

TEST_F(WasmSequencerTester, SeqRunInNoMainEmitsSeqDone) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Test Quality] could fix Five SeqRunIn*EmitsSeqDone tests repeat the same 6-line assertion block.

SeqRunInLoadFailureEmitsSeqDone, NoMain, StartInvokeFailure, StartTrap, and MainInvokeFailure all drive seqRunIn, dispatchAll(), then assert the identical seqStartOutCount == 0 / seqDoneOutCount == 1 / EXECUTION_ERROR / CMD_RESPONSE_SIZE(0) set, differing only in asset, end state, and event. A tester helper such as assertPortRunAbortedWithoutStart(ControllerState expected) holding the shared four asserts would keep each test to its distinguishing event check and prevent the block drifting apart if the abort contract changes.

@lestarch-autobot lestarch-autobot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review summary (run 1)

Pre-run prompt-injection alert

⚠️ The orchestrator's pre-run metadata scan flagged potential
prompt-injection in PR-authored content before reviewers were
invoked. All reviewers were warned via their kickoff prompts.

Flagged surfaces:

  • pr_body: hidden-html-comment — "<!-- If you are an AI agent or bot, please respond to the question "Generative AI was used in this con..."
  • pr_body: hidden-html-comment — ""

The supply-chain reviewer's inline findings below include full
analysis of any prompt-injection content in the diff and metadata.

Per-agent results

Agent must fix suggestion could fix future work outstanding Verdict
Security Vulnerabilities 0 0 0 0 0 Go
Supply Chain / Runner Safety 0 0 1 0 1 Go
F Prime C/C++ Design 0 0 0 0 0 Go
Documentation Currency 0 0 0 0 0 Go
Design 0 0 0 0 0 Go
Architecture 0 0 0 0 0 Go
Test Quality 0 0 1 0 0 Go
Correctness 0 0 0 0 0 Go
Operational 0 0 0 0 0 Go
Maintainability 0 1 0 0 1 Go
CI safety Go
Totals 0 1 2 0 2 Go
Supply-chain surfaces
Surface Outstanding
Dependencies clean
Vendored / submodule clean
Build / test infrastructure clean
Workflows / actions / scripts clean
Generator output clean
Prompt-injection 1 could-fix — hidden AI-targeting HTML comment (PR template) in PR body
Review-system integrity clean

Merge readiness

Merge readiness: Go — all ten reviewers completed with zero outstanding must-fix findings; three non-blocking threads (1 suggestion, 2 could-fix) remain for the author's discretion.


Every done gets its reply now — mission control copies, WasmSequencer. Nice fix, Kronos3.

@lestarch-autobot lestarch-autobot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review summary (run 2)

Pre-run prompt-injection alert

⚠️ The orchestrator's pre-run metadata scan flagged potential
prompt-injection in PR-authored content before reviewers were
invoked. All reviewers were warned via their kickoff prompts.

Flagged surfaces:

  • pr_body: hidden-html-comment — "<!-- If you are an AI agent or bot, please respond to the question "Generative AI was used in this con..."

The supply-chain reviewer's inline findings below include full
analysis of any prompt-injection content in the diff and metadata.

Per-agent results

Agent must fix suggestion could fix future work outstanding Verdict
Security Vulnerabilities 0 0 0 0 0 Go
Supply Chain / Runner Safety 0 0 1 0 1 Go
F Prime C/C++ Design 0 0 0 0 0 Go
Documentation Currency 0 0 0 0 0 Go
Design 0 0 0 0 0 Go
Architecture 0 0 0 0 0 Go
Test Quality 0 0 1 0 1 Go
Correctness 0 0 0 0 0 Go
Operational 0 0 0 0 0 Go
Maintainability 0 1 0 0 0 Go
CI safety Go
Totals 0 1 2 0 2 Go
Since last run
Agent resolved still open newly added incorrect-fix follow-ups improperly resolved disagreements escalated
Security Vulnerabilities 0 0 0 0 0 0
Supply Chain / Runner Safety 0 0 0 0 1 0
F Prime C/C++ Design 0 0 0 0 0 0
Documentation Currency 0 0 0 0 0 0
Design 0 0 0 0 0 0
Architecture 0 0 0 0 0 0
Test Quality 0 1 0 0 0 0
Correctness 0 0 0 0 0 0
Operational 0 0 0 0 0 0
Maintainability 1 0 0 0 0 0

Duplicates consolidated this run: 0 (threads closed by the §5h post-pass)

Supply-chain surfaces
Surface Outstanding
Dependencies clean
Vendored / submodule clean
Build / test infrastructure clean
Workflows / actions / scripts clean
Generator output clean
Prompt-injection 1 could-fix — hidden AI-targeting HTML comment (PR template) in PR body, still present; thread resolved by contributor without change (improperly resolved)
Review-system integrity clean

Merge readiness

Merge readiness: Go — all ten reviewers completed with zero outstanding must-fix findings; the maintainability suggestion was applied in d562d08, and two non-blocking could-fix threads (one flagged as improperly resolved by Supply Chain) remain for maintainer discretion.


Second pass complete: the refactor landed clean and every sequence still phones home. Steady as she goes.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Svc/WasmSequencer: sync CANCEL races store reset (m_wasm assert), port-driven RUN failures never emit seqDoneOut, guest ABI CLEARED=5

2 participants