v4.3.0a1
Pre-release
Pre-release
A soakable pre-release of the upcoming v4.3.0!
What's Changed
- Add website local rendering and improve navigability by @thomas-bc in #4943
- Make Fw.LogSeverity a dictionary enum by @zimri-leisher in #4952
- fix: bounds check logic error in ENABLE_GROUP_cmdHandler and missing check in SEND_PKT_cmdHandler by @dcpagotto in #4948
- Fix static analysis findings in snprintf_format.cpp by @areporeporepo in #4955
- Remove flag system from FpySequencer by @zimri-leisher in #4947
- Refactor EventManager to use
Fw::ArraySetby @vsoulgard in #4928 - Issue 4931 prm db crc endian fix by @odacindy-fprime in #4956
- Add POP_EVENT directive to FpySequencer by @zimri-leisher in #4953
- Serial port topology testing by @Kronos3 in #4922
- Fix/dp catalog bounds check by @aldwin-dev in #4934
- Update spelling workflow to v0.0.26 by @thomas-bc in #4966
- Appease spelling CI by @thomas-bc in #4968
- Move Includes for ComCcsds into SubTopology by @LeStarch in #4967
- Fix defaults to work around nasa/fpp#984 by @LeStarch in #4969
- Change configure method parameters to const by @LeStarch in #4961
- Rename SerializeBufferBase to LinearBufferBase by @odacindy-fprime in #4982
- Refactor FileManager for no shell command by @thomas-bc in #4979
- Refactor GenericHub no-output invalid-path assertions by @LeStarch in #4944
- Remove FprimeRouter Copy by @LeStarch in #4984
- Add support for direct port calls by @bocchino in #4987
- DpWriter shrink container buffer after processing by @kubiak-jpl in #4904
- Fix incorrect U32 usage in FprimeFrameDetector by @LeStarch in #5016
- Fixes #5010 by @LeStarch in #5013
- Generalize uses of LinearBufferBase to SerialBufferBase where possible by @odacindy-fprime in #4995
- Tighten com protocol sdds by @LeStarch in #5017
- Ref: call deinitComponents during topology teardown by @dcpagotto in #4998
- docs: fix typos and duplicated words in port patterns guide by @alideniztartma in #5020
- Fix #5007 by dropping frame when full by @LeStarch in #5019
- CI: stop using runner.debug in reusable project builder by @dcpagotto in #4999
- Fix FileWorker declaration by @Tirth-Thakkar in #5021
- Adding python development guide by @LeStarch in #4976
- Add common infrastructure for Rule-Based Testing by @thomas-bc in #4977
- Refine Contributing, Security, and AI Policy documents by @thomas-bc in #5024
- Fix CmdArgBuffer SERIALIZED_SIZE computation by @Sarah5567 in #4978
- Bump requests from 2.32.4 to 2.33.0 by @dependabot[bot] in #4906
- Bump pytest from 8.3.3 to 9.0.3 by @dependabot[bot] in #5004
- Add FppTestProject Direct Port Call Integration Tests to CI by @Kronos3 in #5033
- Fix off-by-one in Stack::push() and Stack::pushZeroes() boundary checks by @LeStarch in #5015
- Bump FPP to 3.3.0a2 by @Kronos3 in #5044
- Bump lxml from 6.0.2 to 6.1.0 by @dependabot[bot] in #5053
- doc: add build status badges for reference projects by @alideniztartma in #5045
- Fix FileWorker compatibility with 32-bit baremetal platforms by @celskeggs in #5046
- Add args to CmdSeqIn by @Lex-ari in #4962
- Add Cancel Port To FpySequencer by @Lex-ari in #5056
- Bump FPP to 3.3.0a3 by @Kronos3 in #5075
- Add docs for How-To Write Rule-Based Tests by @thomas-bc in #5052
- Os::File::open Bounded Inputs by @LeStarch in #4980
- Modernize DpCatalog: in-class initializers and =default destructor by @carlosvales in #5068
- Fix ComQueue dropping oldest Fw::Buffer without returning ownership by @LeStarch in #5014
- Fix static analysis blocker: bounds-guard m_directories in DpCatalog by @sympact06 in #4964
- PR 5086 - Improved frame detector arithmetic against integer underflo… by @bitWarrior in #5087
- PR 5038 - Force Framers to setSize on Fw::Buffer before outputting it by @bitWarrior in #5079
- PR 5040 - Fixed Potential DB file corruption on longer then shorter re-save DB file by @bitWarrior in #5080
- PR 5084 - Fixed pkt_length integer overflow and replaced ASSERT w/ event by @bitWarrior in #5085
- DpCatalog - validate fdp files by @Sarah5567 in #5042
- Fix ApidManager bug validating seqCount when table is full by @thomas-bc in #5091
- Clean up FrameDetector UTs by @thomas-bc in #5094
- PR 5036 - Event vs. ASSERT if DP file is corrupted by @bitWarrior in #5078
- Update DpCatalog.cpp by @Saunders-Trinity in #5098
- Unify BlockState enum across sequencers by @Sarah5567 in #5095
- Fix CMake unit test race condition by @thomas-bc in #5093
- Dp redblack by @timcanham in #5103
- Delete Utils/docs/LockGuard.md by @nateinaction in #5107
- Add docs on Selecting Component, Port, and Command Kinds by @LeStarch in #5108
- CCSDS AOS Deframer by @Willmac16 in #4779
- Banish Ref to a project directory by @LeStarch in #5125
- Bump urllib3 from 2.6.3 to 2.7.0 by @dependabot[bot] in #5137
- fix(CmdSequencer): clear sequence buffer on failed loadFile by @datqm in #5136
- Fix memcpy without bounds checking (#5118) by @bitWarrior in #5131
- PR-5119 - Fixed issue where invalid SET_LEVEL is processed by @bitWarrior in #5127
- Validate Fpy Sequence Arg Names and Types by @Lex-ari in #5031
- Break Big CI Jobs Apart by @LeStarch in #5140
- ci: declare contents:read on pip-check workflow by @arpitjain099 in #5156
- ci: declare contents: read on the remaining workflows by @arpitjain099 in #5161
- feat(.github/agents): add multi-agent PR review system (v9) by @LeStarch in #5163
- Add doc design test and review agents by @LeStarch in #5165
- ci: add .github/agents/** to paths-ignore in build/test workflows by @lestarch-autobot in #5166
- feat(.github/agents): architectural fixes for multi-agent review system by @lestarch-autobot in #5168
- Bump idna from 3.10 to 3.15 by @dependabot[bot] in #5172
- refactor(agents): update summary layout and remove run-number PR linking by @lestarch-autobot in #5174
- Attempt to enhance AI contribution detection by @thomas-bc in #5164
- Add entries to .gitignore that come from generic git repos by @djbyrne17 in #5153
- agents: add CPP-29-33 rules, behavioral-regression, copy-paste-test, context mandate by @lestarch-autobot in #5178
- agents: add pre-run prompt-injection metadata scan to review orchestrator by @lestarch-autobot in #5183
- Fw: Types, fix serialize size left assert by @puneetdixit200 in #5177
- Add CPP-34: Prefer bounded
forloops; discouragewhileloops by @lestarch-autobot in #5184 - Address student feedback on Bare-metal and Multi-core patterns by @thomas-bc in #5162
- Fix TlmPacketizer ENABLE_SECTION command comment by @puneetdixit200 in #5176
- ci(coverage): add workflow_run listener that posts sticky PR comment by @lestarch-autobot in #5186
- Close 5 adversarial review gaps from test failure analysis by @lestarch-autobot in #5188
- Bump FPP to v3.3.0a4 by @Kronos3 in #5195
- Normalize CMakeLists.txt to new register_fprime_* keyword pattern by @lestarch-autobot in #5199
- Remove generate_faux_cmake_language and bump minimum CMake to 3.18 by @lestarch-autobot in #5201
- Fix TcpServer shutdown hang and AosDeframer missing include by @lestarch-autobot in #5202
- Refactor CMake: glob-based platform discovery, register_fprime_project, and build guard by @lestarch-autobot in #5209
- Add CMake test for find_package(FPrime); skip ini processing in find_package flow by @lestarch-autobot in #5211
- Improve reusable Integration Tests system by @thomas-bc in #5187
- ci: add coverage workflows (per-module + global gcovr, two-stage) by @lestarch-autobot in #5167
- cmake: write test-dir.fprime-util for deployments with dependent tests by @lestarch-autobot in #5217
- Update fprime-tools version to 4.3.0a3 by @LeStarch in #5213
- Closes Issue #5149: Non-desirable coding in TlmChan by @cambrim in #5203
- fixing name of component by @kevin-f-ortega in #5219
- Annotate review agent comments with reviewer label prefix by @lestarch-autobot in #5218
- Add F Prime unit testing skill by @lestarch-autobot in #5216
- Add missing paths-ignore entries to coverage-check workflow by @lestarch-autobot in #5222
- Drv: rename hostname to ipv4Address by @Not4right in #5109
- Replaced assert w/ events for FileWorker and FpySequencer ports by @bitWarrior in #5198
- AosDeframer Integer Overflow Issue by @bitWarrior in #5210
- AosFramer: make spacecraftId and vcId configurable by @shan-zh-26 in #5196
- fix(Os): Remove unused File::m_path member variable by @SAY-5 in #5171
- Add JPL Design Principles (DP10) skill + margin/fault checks in design reviewer by @lestarch-autobot in #5231
- agents: add F Prime Architecture Reviewer to multi-agent PR review by @lestarch-autobot in #5230
- Add component development lifecycle skills for agent use by @lestarch-autobot in #5224
- FPP issue 984 -- extern param defaults by @bocchino in #5227
- Convert file-scope set() constants to CACHE variables in CMake files by @lestarch-autobot in #5242
- Truncate assert path by @bevinduckett in #5141
- Remove m_handler_storage() initializer in RawTime() constructor and copy. by @bdshenker in #5240
- Added Os::CountingSemaphore osal module (#5173) by @bevinduckett in #5204
- FpySequencer SEQ_BASE_DIR parameter by @zimri-leisher in #5074
- Moving more towards independent builds of F Prime by @LeStarch in #5241
- TlmChan hash improvements by @bitWarrior in #5170
- Revise JSON dictionary spec by @bocchino in #5254
- Fix time dependency by @LeStarch in #5255
- Update fprime-tools version to 4.3.0a4 by @LeStarch in #5256
- Add hardcoded CRC32 value tests for Os::File, Svc::PrmDb, Svc::CmdSequencer, Svc::FpySequencer by @lestarch-autobot in #5259
- Have Svc::FrameAccumulator forward most recent context on frame detection by @lestarch-autobot in #5257
- Introduce optimized CRC-32 implementation by @celskeggs in #4917
- Fix TlmPacketizer event parameter naming and remove contradictory assert by @lestarch-autobot in #5258
- FileUplink::File::open: validate destination path length at entry by @nurdymuny in #5262
- Fix FPP comment for CalculateCrc CMD by @pcrosemurgy in #5264
- Add PUSH_RAND and SET_SEED directive into FpySequencer by @Nickg02 in #5062
- Add Fpy dependency back to requirements.txt by @zimri-leisher in #5270
- Make RawTimeInterface::getDiffUsec into a virtual function by @lestarch-autobot in #5267
- Add FileManager Commands.fppi comment by @pcrosemurgy in #5276
- Fix SmSignalBuffer SERIALIZED_SIZE to use correct buffer constant by @lestarch-autobot in #5272
- Enable SO_REUSEADDR by default in IP_SOCKET_OPTIONS by @lestarch-autobot in #5274
- Pattern Documentation: How-To: Load Parameters in Batch by @Specky26846 in #5237
- Replace all hand-coded string classes with StringTemplate aliases by @lestarch-autobot in #5275
- Assert on channel ID present in both packet and ignore lists in TlmPacketizer by @lestarch-autobot in #5273
- Remove Fw/Types/SerIds.hpp and all SERIALIZED_TYPE_ID usage by @lestarch-autobot in #5271
- Build Fixes by @LeStarch in #5280
- Remove unused CMake functions and default.cmake by @lestarch-autobot in #5284
- Revise handling of C++ object names in topology code gen by @bocchino in #5282
- Streamlining the handling of locations and include roots in F Prime CMake by @LeStarch in #5286
- Remove spell-check workflow and action by @lestarch-autobot in #5299
- Workflows for RPI 5 Soak Testing LedBlinker by @moisesmata in #5265
- Use pr-xxxx pattern for GDS across Integration Test CI by @thomas-bc in #5298
- Fix DESTDIR support: decouple install destination from CMAKE_INSTALL_PREFIX by @lestarch-autobot in #5296
- Update fprime-seqgen/sequencer docs to support complex parameters by @Kronos3 in #5294
- Update FPP to v3.0.0a9; revise FppTest by @bocchino in #5295
- Fix empty DEPENDS handling in module parser by @arpitjain099 in #5300
- SpacePacketFramer: add secondary header flag by @shan-zh-26 in #5239
- Add system-functional documentation and generation skill by @lestarch-autobot in #5215
- Add BufferAccumulator to DataProducts subtopology by @macayu17 in #5292
- Move write-system-functional-doc skill to correct location by @thomas-bc in #5304
- Soak Testing Workflow Updates by @moisesmata in #5302
- Write FPRIME_LOCATIONS to fprime-util metadata files by @lestarch-autobot in #5310
- Fix DpCatalog UT seed failures (#5104) by @lestarch-autobot in #5317
- Upgade deprecated actions by @thomas-bc in #5318
- Add Fw::Optional type for C++14 environments by @lestarch-autobot in #5319
- Run all Ref INTs in CI by @thomas-bc in #5326
- add in interface and ports for asynchronous i2c communication models by @csmith608 in #5306
- Restrict FW_NUM_ARRAY_ELEMENTS to C-style arrays by @arpitjain099 in #5303
- Add CI workflow for non-default FpConfig.h configuration testing by @lestarch-autobot in #5321
- Replace hand-coded buffer classes with LinearBufferTemplate aliases by @lestarch-autobot in #5341
- Add LINK_DEPENDS directive to register_fprime_* calls by @lestarch-autobot in #5342
- BufferLogger: compute CRC32 incrementally during writes by @lestarch-autobot in #5348
- Guard close() calls against invalid file descriptors by @lestarch-autobot in #5336
- Remove FW_USE_PRINTF_FAMILY_FUNCTIONS_IN_STRING_FORMATTING config flag by @lestarch-autobot in #5335
- Retry IpSocket::recv() on EINTR by @macayu17 in #5344
- Reject invalid PVN in SpacePacketDeframer by @peter941221 in #5291
- Add FpySequencer serial pop feature by @Brian-Campuzano in #5327
- FpySequencer Fix domain error in sdiv smod and fmod by @zimri-leisher in #5356
- Fix overflow in POP_EVENT directive in FpySequencer by @zimri-leisher in #5308
- Validate that all AUTOCODER_INPUTS are handled by a registered autocoder by @lestarch-autobot in #5350
- Report number of events dropped by EventManager by @lestarch-autobot in #5349
- Integrate revised code gen for FPP enums by @bocchino in #5324
- Add external repo CI for fprime_cfs_reference by @lestarch-autobot in #5360
- Remove cpplint CI job and supporting files by @lestarch-autobot in #5363
- Fixed error when running BufferLogger UT as root by @bevinduckett in #5354
- Recognize FW_ASSERT in JPL CodeQL Rule 16 assertion queries by @lestarch-autobot in #5361
- Refine JPL Rule 15 CodeQL query: pointer/integer focus with FW_ASSERT support by @lestarch-autobot in #5365
- Exclude CMake-internal generated sources from CodeQL scans by @lestarch-autobot in #5366
- Allow literal FW_ASSERT(0) as a permitted constant assertion in CodeQL rule by @lestarch-autobot in #5367
- CodeQL: refine autocoder false positives and publish alerts only on the devel branch by @lestarch-autobot in #5374
- codeql: run 'fprime-util generate' before CodeQL init to drop CMake-internal alerts by @lestarch-autobot in #5379
- codeql: refine basic-int-types for char C-strings; move conditional-compilation to no-autocode run by @lestarch-autobot in #5380
- Move config test matrix to nightly workflow; PRs run only minimal profile by @lestarch-autobot in #5381
- Message Queue with per priority memory allocation by @bevinduckett in #5205
- Add Lossless Data Product Compression Components by @kubiak-jpl in #5235
- codeql: move function-size-limits (Function too long) to the no-autocode run by @lestarch-autobot in #5382
- Refactor CCSDS comms stack into composable SpacePacketFraming, SpacePacket, and TmTcFraming topologies within the ComCcsds module by @lestarch-autobot in #5376
- Telemetry port cycle times on Svc.PassiveRateGroup by @Kronos3 in #5371
- Add Os::SandboxedFile and Os::FilePathUtils for directory-sandboxed file access by @lestarch-autobot in #5320
- Improve consistency in auto-generated code for handler functions by @bocchino in #5372
- codeql: exclude build paths via SARIF post-filtering (filter-sarif) by @lestarch-autobot in #5388
- Stop falling back on devel for fprime-gds
pr-xxxxupgrades by @thomas-bc in #5385 - Svc: flatten ComCcsds subtopologies using fppi includes instead of topology imports by @lestarch-autobot in #5389
- CodeQL: move assertion-density to known-autocode run; C++-aware multiple-stmts-per-line refinement by @lestarch-autobot in #5391
- CodeQL: C++-aware loop-bounds and non-const-function-pointer refinements; de-duplicate basic-int-types by @lestarch-autobot in #5393
- FPP performance fix by @bocchino in #5409
- CodeQL: exclude C++ template, range-for, and constexpr false positives (Rules 16/17/19) by @lestarch-autobot in #5395
- Website update: How-To Organization, Automated Landing Pages by @Specky26846 in #5328
- fix(FpySequencer): reject empty sequence file paths without assert by @Abhishek21g in #5406
- Mark pure accessors const so FW_ASSERT sites pass CodeQL side-effect analysis by @lestarch-autobot in #5392
- Add F' Cheatsheet link to Getting Started by @Specky26846 in #5422
- Sequencing in F' documentation update by @Specky26846 in #5410
- Add POP_SERIALIZABLE to DeserializeDirectives by @Lex-ari in #5378
- Make FW_ASSERT conditions explicit boolean tests (JPL Rule 16) by @lestarch-autobot in #5394
- Assert on matching channel size for duplicate channel IDs in TlmPacke… by @Sammy-Dabbas in #5357
- Fix assert on cmd response with full stack in FpySequencer by @zimri-leisher in #5427
- Report actual FileWorker read outcome instead of hardcoded DONE_READ by @Sammy-Dabbas in #5414
- Fixed Svc/FileWorker: report FW_STATUS_FAILED_TO_WRITE when writeIn's… by @bitWarrior in #5399
- fix(FpySequencer): prevent 32-bit overflow in checkStatementTimeout by @Abhishek21g in #5426
- feat(FileDownlink): sandboxed reads via Os::SandboxedFile by @Abhishek21g in #5404
- Update/Add Soak Test Workflows: Linux Remote + Pico2 + Soak Summary by @moisesmata in #5387
- Ensure all workflows use 'soak-test' label for self-hosted soak runners by @moisesmata in #5430
- CodeQL: exempt external-API-dictated integral types in basic-int-types refinement by @lestarch-autobot in #5431
- Use sized types for repo-declared descriptors, statuses, and comparators (JPL Rule 17) by @lestarch-autobot in #5432
- CodeQL: exempt range-based for loops in JPL Rule 3 loop-bounds refinement by @lestarch-autobot in #5439
- Add fprime_get_target_triple to platform.cmake by @lestarch-autobot in #5434
- CI: add TSan UT job to Framework, timing-check jobs to Framework and Ref; fix data races found by TSan by @lestarch-autobot in #5435
- CodeQL: refine JPL Rule 24 multiple-var-decls query for C++ range-based for loops by @lestarch-autobot in #5436
- CodeQL: exempt out-parameter stores, constexpr, and compiler builtins in checking-return-values refinement by @lestarch-autobot in #5443
- Split multi-variable declarations onto separate lines (JPL Rule 24) by @lestarch-autobot in #5437
- Add protected copy constructor to DpContainer (rule of two) by @lestarch-autobot in #5444
- CodeQL: refine assertion-density query for F Prime error-handling styles by @lestarch-autobot in #5442
- CodeQL: refine Rule 20 ifdef query to permit external-macro feature detection in OS platform layers by @lestarch-autobot in #5456
- CodeQL: filter fprime-venv toolchain files from JPL SARIF results by @lestarch-autobot in #5457
- CodeQL: exclude F Prime Rule 20 ifdef refinement from the pack-2 run by @lestarch-autobot in #5459
- Bump setuptools from 78.1.1 to 83.0.0 by @dependabot[bot] in #5452
- Remove side effects from boolean expressions (JPL Rule 19) by @lestarch-autobot in #5458
- Const-qualify iterator comparison operators and AosFramer::buffer_belongs (JPL Rule 19) by @lestarch-autobot in #5461
- Add FW_ASSERT parameter checks for unvalidated pointer and index parameters (JPL Rule 15) by @lestarch-autobot in #5460
- Fix include mal-ordering by @LeStarch in #5462
- Add FW_ASSERT precondition checks flagged by JPL Rule 16 assertion density by @lestarch-autobot in #5446
- Hoist loop-invariant bounds and annotate intentional wait loops (JPL Rule 3) by @lestarch-autobot in #5440
- JPL Rule 14: report file name format failures as WARNING_HI events by @lestarch-autobot in #5454
- JPL Rule 14: void C API returns, assert serialization statuses, fix stale-status bugs, check task/timer ops by @lestarch-autobot in #5453
- CodeQL: exempt FW_* FpConfig switches in Fw/ from Rule 20 ifdef refinement by @lestarch-autobot in #5466
- Hoist loop bound in ArraySetOrMapImpl::remove (JPL Rule 3) by @lestarch-autobot in #5464
- Resolve handwritten cppcheck warnings (init m_stage; suppress false-positive missingMemberCopy) by @lestarch-autobot in #5465
- Refine JPL Rule 17 basic-int-types query: exempt external-API-dictated int and autocode auto range-loop var by @lestarch-autobot in #5470
- CodeQL: teach Rule 19 purity analysis about provably pure function bodies by @lestarch-autobot in #5468
- Refine JPL Rule 16 assertion-density query: exempt assert infrastructure and bool-returning error reporters by @lestarch-autobot in #5471
- Remove stale FW_HAS_F64 guards by @lestarch-autobot in #5467
- Add FW_ASSERT checks to Svc functions flagged by JPL Rule 16 assertion-density by @lestarch-autobot in #5472
- Add FW_ASSERT checks to Os, Fw, and Drv functions flagged by JPL Rule 16 assertion-density by @lestarch-autobot in #5473
- Fix some typos in the User Manual (State Machines) by @evshary in #5469
- docs: fix broken file links in SDD documents by @ZayanKhan-12 in #5475
- Add FW_CASSERT_{2,3,4,5,6} macros by @pcrosemurgy in #5463
- YAMCS CI Workflow for testing YAMCS Reference + Integration test changes by @yvijay99 in #5450
- Restore ComCcsds framing subtopology imports (revert #5389) by @lestarch-autobot in #5477
- Exclude autocode switch-shape findings and disable constant-comparison in CodeQL security scan by @lestarch-autobot in #5478
- Refine preprocessor-use-ifdef and basic-int-types CodeQL queries by @lestarch-autobot in #5487
- Address miscellaneous CodeQL security-pack findings by @lestarch-autobot in #5483
- Check Os::RawTime::now() return status at eight ignored-return sites by @lestarch-autobot in #5489
- Make ComCcsds subtopology router swappable via configuration by @lestarch-autobot in #5486
- Fix Python CodeQL security-pack findings (unused code hygiene) by @lestarch-autobot in #5481
- Remove commented-out code and pass large parameters by const reference by @lestarch-autobot in #5479
- Exempt ctors/dtors and recognize static_assert in assertion-density query by @lestarch-autobot in #5491
- Convert compile-time assertions to static_assert and hoist side effects out of FW_ASSERT by @lestarch-autobot in #5493
- Add CodeQL query unit tests for the F Prime JPL-standard refinements by @lestarch-autobot in #5496
- Add Utils unit tests: CRCChecker, rules-based Queue, RateLimiter and TokenBucket edge cases by @lestarch-autobot in #5480
- Remove hardcoded PrmDb file name from FileHandling subtopology by @rvaccone in #5497
- Fix markdown lint & typos by @evshary in #5498
- Add structure-driven interfaces for array-in-interface CodeQL findings, deprecate raw-array overloads by @lestarch-autobot in #5488
- Fix race condition in test_telemetry_update by clearing histories aft… by @yvijay99 in #5484
- Convert MAX_PRIORITIES bit-mask check to static_assert by @lestarch-autobot in #5502
- LinuxUartDriver: use per-baud #ifdef guards for all Linux-specific baud rates by @lestarch-autobot in #5501
- Fixed SerialportIndex to FwIndexType by @Lex-ari in #5500
- Add GenericHub INT in CI and overhaul documentation by @thomas-bc in #5411
- Add FprimeCommandResponse CodeQL query: every command handler path must respond by @lestarch-autobot in #5520
- Publish per-module CodeQL findings to baseline branch; serialize baseline publishers by @lestarch-autobot in #5521
- Fixed assert logic error in Os/Posix/File.cpp by @bitWarrior in #5513
- Add 16 F Prime CodeQL queries with unit tests; enable cpp/uninitialized-local by @lestarch-autobot in #5522
- Fix FileWorker process abort on zero-length writeIn and report actual bytes written by @bitWarrior in #5514
- Add null check for buffer in toString method by @LeStarch in #5499
- Refactor ActiveTextLogger backup filename search to a bounded for loop by @lestarch-autobot in #5503
- Add external-build + integration-test CI workflow for fprime-python-reference by @lestarch-autobot in #5438
- Add configuration to Async I2c interfaces by @Kronos3 in #5476
- Add SDD for Drv::LinuxGpioDriver by @Moferanoluwa in #5505
- Add ABORT by name cmd to SeqDisp by @Lex-ari in #5423
- Publish JPL-standard CodeQL findings as their own checklist check by @lestarch-autobot in #5526
- Bump FPP v3.3.0a13 by @Kronos3 in #5532
- remove platform restriction by @csmith608 in #5540
- Add F Prime Correctness Reviewer agent to the review stack by @lestarch-autobot in #5543
- Add Maintainability & Readability reviewer to the multi-agent PR review by @lestarch-autobot in #5552
- Add zero-sized string integration coverage by @lntutor in #5508
- Add event severity filtering to text loggers with shared common code by @lestarch-autobot in #5343
- split Verson's config function so events and tlm can be sent later in the startup process by @csmith608 in #5539
- Fix/router context preserving file uplink by @Brian-Campuzano in #5433
- docs: fix two stale relative links in component SDDs by @kadircanyildirm-crypto in #5559
- Fix undefined behavior in FpySequencer op_mul overflow guard by @rvaccone in #5533
- Space packet seq flags by @shan-zh-26 in #5445
- CANCEL_ALL Sequence Dispatcher Command by @Lex-ari in #5528
- fix(Ref): register commands after component and topology configuration by @karan9617 in #5555
- Fix type-limits warning in Svc/Ccsds/TestUtils/TestUtils.cpp by @bevinduckett in #5534
- Guard variable divisors before division/modulo (CodeQL division-guard) by @lestarch-autobot in #5525
- FpySequencer add FFLOOR, FABS and IABS directives, math func consistency by @zimri-leisher in #5529
- Add Component Checks workflow publishing checklist badges by @lestarch-autobot in #5541
- fix(Fw/Cmd): clear stale command arguments, with deserialization tests by @tekinertekin in #5517
- Svc/CmdSequencer: reject CS_JOIN_WAIT while a command response is pending by @lestarch-autobot in #5511
- Svc/DpCompressProc: reject buffers smaller than MIN_PACKET_SIZE locally by @nurdymuny in #5518
- Add a regression test for .fppi edits re-running generation by @kadircanyildirm-crypto in #5571
- CCSDS File Delivery Protocol - CfdpManager by @Brian-Campuzano in #5138
- Fix fourteen small independent defects: Linux MEMORY_USED inversion, memory safety, leaks, ignored statuses by @lestarch-autobot in #5563
- Pin filter-sarif to a commit SHA; document ActivePhaser cycle drops and the bounded AtomicQueue blocking contract by @lestarch-autobot in #5564
- Updates to Time copy constructor & LinearBufferTemplate for issue #5572 by @bevinduckett in #5582
- Add Encryption Interfaces to F Prime by @LeStarch in #5527
- Harden externally-reachable input paths and fault-protection failure modes by @lestarch-autobot in #5565
- codeql: add FprimeUnguardedUnsignedSubtraction query by @nurdymuny in #5544
- Fix Health integration test after FATAL-precedence change in #5565 by @lestarch-autobot in #5596
- fprime-examples CI integration testing - ManagerWorker by @Specky26846 in #5575
- Test enum serial value construction and assignment by @lntutor in #5537
- docs: address review feedback on component/port selection document by @lestarch-autobot in #5605
- docs: address reviewer feedback on state machine how-to guide by @lestarch-autobot in #5607
- fix(FileDownlink): set cancel packet buffer to exact serialized size by @philphauler in #5556
- Add aarch64-clang-linux toolchain: cross-compile aarch64 Linux with generic clang/lld + sysroot by @lestarch-autobot in #5595
- Fix malformed Svc/Subtopologies/CMakeLists.txt breaking configure on devel by @lestarch-autobot in #5611
- FATAL_ERROR when config file include paths conflict between source tree and build cache by @lestarch-autobot in #5589
- Svc: Guard TlmChan updated flag clears by @ChimdumebiNebolisa in #5560
- fix(Drv/Ip): apply the UDP send timeout when no send port is configured by @tekinertekin in #5593
- docs: update cross-compilation tutorial to the clang + sysroot approach by @lestarch-autobot in #5610
- Add cross-agent de-duplication (site-key, concurrence, aggregator post-pass) to the multi-agent PR review by @lestarch-autobot in #5619
- Add F Prime Reference Projects page, link from Supported Platforms by @Moferanoluwa in #5554
- Fixed error in CFDP UT when running as root by @bevinduckett in #5623
- Add missing SDDs for components and subtopologies by @lestarch-autobot in #5627
- Svc/Ccsds/CfdpManager: harden RX path against malformed remote PDUs by @lestarch-autobot in #5585
- Correct stale documentation: ground-interface driver model, FpySequencer and SeqDispatcher tables by @lestarch-autobot in #5637
- Make buffer ownership state atomic in ComQueue and ComAggregator sync return paths by @lestarch-autobot in #5628
- Fix PrmDb load-result reporting, DpCatalog state-file and transmit wedges, and File::readline error contract by @lestarch-autobot in #5624
- Add alias for Os::RawTime by @bevinduckett in #5617
- Strengthen weak unit tests: OsTime SetCurrentTime coverage, FileDownlink payload assertion, CPU ticks tautology by @lestarch-autobot in #5636
- Fix PriorityMemQueue semaphore credit drift by @lestarch-autobot in #5634
- Fix twelve independent correctness defects across Os, Drv, and Svc by @lestarch-autobot in #5569
- Fw::Buffer: store original pointer + offset, track capacity, add advance() by @lestarch-autobot in #5588
- Svc: harden externally-reachable inputs against assertion DoS and path traversal by @lestarch-autobot in #5633
- Add design-missed-reuse category to the Design Reviewer agent by @lestarch-autobot in #5642
- Svc/Ccsds/CcsdsSdlsDeframer: use Fw::Buffer::advance to strip SA index (fixes devel UT failure) by @lestarch-autobot in #5644
- CI: move devel-push jobs onto a nightly 2:00 PM Pacific schedule by @lestarch-autobot in #5647
- CI: use blobless clones (filter: blob:none) for full-history checkouts by @lestarch-autobot in #5650
- CI: merge Zephyr Pico 2 and Teensy 4.1 builds onto one runner by @lestarch-autobot in #5649
- CI: drop Make Space from cFS reference workflow by @lestarch-autobot in #5652
- CI: scope UTs to framework vs deployment jobs; run macOS jobs only on the nightly schedule by @lestarch-autobot in #5653
- CI: enable ccache in project builds and per-leg cache keys for config tests by @lestarch-autobot in #5658
- Add option to disable command opcode events by @macayu17 in #5612
- Consolidated should-fix tranche: 76 small correctness, safety, and documentation corrections by @lestarch-autobot in #5651
- Refactor LinearBufferBase to remove virtual functions by @bevinduckett in #5584
- Split the flags F Prime requires from the flags it validates against by @kadircanyildirm-crypto in #5590
- Stop rewriting overridden configuration files on every configure by @kadircanyildirm-crypto in #5576
- Add GenerateDp command to FileManager by @durasi in #5561
- CI: pipe fprime-util generate/build output through output-cleaner by @lestarch-autobot in #5664
- CfdpManager: Fix Poll Directory Commands by @pepepr08 in #5640
- Implement Timer Source selection for RawTime and per-component metrics in Passive Rate Group by @bdshenker in #5615
- Improve string tests in FppTest by @karan9617 in #5566
- FpySequencer: validate argument size against the stack limit, not residual runtime state by @lestarch-autobot in #5656
- Harden FileDownlink data packet range check against assertion fall-through by @bitWarrior in #5618
- LinuxGpioDriver: support Linux GPIO character device uAPI v2 with v1 fallback for legacy kernels by @lestarch-autobot in #5504
- Svc/ComQueue: store queued objects via Fw serialization instead of raw byte copies by @lestarch-autobot in #5643
- docs: use generated SIZE_OF__RECORD constants in data products how-to by @lestarch-autobot in #5668
- Svc/Subtopologies: add CPU affinity as overridable config for active instances by @rvaccone in #5568
- cmake: attach required-flags target via link properties to restore plain-signature target_link_libraries in downstream projects by @lestarch-autobot in #5667
- DpWriter: assert on packet size, not data size, after external processing by @lestarch-autobot in #5654
- Svc/Subtopologies: tie Os.TASK_DEFAULT to its C++ sentinel and finish CPU-affinity coverage by @lestarch-autobot in #5669
- ExternalArray: route copy assignment through setStorage; handle aliased pointer in setStorage by @lestarch-autobot in #5659
- DpCompressProc: bound in-buffer moves and record sizes during compression processing by @lestarch-autobot in #5655
- Fix silent data-integrity defects: FileSystem truncated copy, DP compressor size contracts by @lestarch-autobot in #5632
- Update docs for ExternalArray by @bocchino in #5671
- ci: modernize YAMCS Reference workflow (get-pr-branch + reusable project builder) by @lestarch-autobot in #5665
- Added new tlm channel FilesReceivedFailed to fix false success reporting to ground if file uplinked is corrupt by @bitWarrior in #5662
- Add an ExternalArray test by @bocchino in #5673
- Pass the YAMCS deployment path absolutely so the events processor resolves it by @kadircanyildirm-crypto in #5675
- Document Svc::BufferManager returned-buffer size contract by @lestarch-autobot in #5679
- Remove unused vendored OpenSSL SHA256; document fail-open sandbox defaults in FileUplink/FileDownlink/PrmDb and subtopology SDDs by @lestarch-autobot in #5672
- Fix YAMCS Reference integration tests by increasing pytest timeout by @thomas-bc in #5681
- Lockless Priority Queue by @LeStarch in #5076
- Add Operational Consequences Reviewer agent and interface-contract tracing mandate by @lestarch-autobot in #5682
- Add full-codebase (batch) review mode: orchestrator agent, batch contract addendum, partitioning skill by @lestarch-autobot in #5684
- Speed up YAMCS Reference integration tests (~818s -> ~640s) by @lestarch-autobot in #5683
- ComCfg: add FW_PACKET_PARAM APID for parameter values by @durasi in #5685
- Batch review roll-up: navigable TOC and per-unit reviewer tables by @lestarch-autobot in #5686
- Switch Soak Test to
fprime-soak-test-referenceby @moisesmata in #5635 - soak testing: ensure external repo uses correct branch reference by @moisesmata in #5689
- Add reference-repository rule to full-codebase review agent by @lestarch-autobot in #5696
- Fix spurious-wakeup hang in condition variable test by @lestarch-autobot in #5695
- Add settable time context to Svc::PosixTime by @nathancheek in #5692
- Use generated record size macros in the DP examples by @durasi in #5666
- Add parameter validation macro by @ryux1 in #5670
- Drv/Ip: correct SDD and doc comments to match shutdown/close semantics by @nathancheek in #5688
- Migrate agent skills to the standard .github/skills//SKILL.md layout by @thomas-bc in #5709
- Fix stale documentation, misleading comments, and dead code from full-codebase review by @lestarch-autobot in #5705
- Update fprime-tools to 4.3.0a6 and fprime-gds to 4.3.0a1 by @lestarch-autobot in #5708
New Contributors
- @areporeporepo made their first contribution in #4955
- @aldwin-dev made their first contribution in #4934
- @Tirth-Thakkar made their first contribution in #5021
- @carlosvales made their first contribution in #5068
- @sympact06 made their first contribution in #4964
- @Saunders-Trinity made their first contribution in #5098
- @nateinaction made their first contribution in #5107
- @datqm made their first contribution in #5136
- @arpitjain099 made their first contribution in #5156
- @lestarch-autobot made their first contribution in #5166
- @puneetdixit200 made their first contribution in #5177
- @cambrim made their first contribution in #5203
- @Not4right made their first contribution in #5109
- @shan-zh-26 made their first contribution in #5196
- @SAY-5 made their first contribution in #5171
- @nurdymuny made their first contribution in #5262
- @Nickg02 made their first contribution in #5062
- @Specky26846 made their first contribution in #5237
- @macayu17 made their first contribution in #5292
- @peter941221 made their first contribution in #5291
- @Abhishek21g made their first contribution in #5406
- @Sammy-Dabbas made their first contribution in #5357
- @evshary made their first contribution in #5469
- @ZayanKhan-12 made their first contribution in #5475
- @yvijay99 made their first contribution in #5450
- @rvaccone made their first contribution in #5497
- @Moferanoluwa made their first contribution in #5505
- @lntutor made their first contribution in #5508
- @kadircanyildirm-crypto made their first contribution in #5559
- @karan9617 made their first contribution in #5555
- @tekinertekin made their first contribution in #5517
- @philphauler made their first contribution in #5556
- @ChimdumebiNebolisa made their first contribution in #5560
- @durasi made their first contribution in #5561
- @pepepr08 made their first contribution in #5640
- @ryux1 made their first contribution in #5670
Full Changelog: v4.2.0...v4.3.0a1