Upstream findings¶
Defects and surprises in the FINOS sources discovered while vendoring them, verified on 2026-09-04. The finos-mcp servers work around every one of them and pin the current behaviour in tests, so an upstream fix shows up as a test diff on the next sync.
Finding 1 was fixed upstream on October 21, 2026: issue #378 and merged PR #380. The current vendored AIGF snapshot includes that fix, and tests expect zero unresolved external references. The rest are candidates; outreach/README.md tracks which have been filed (finding 15 is finos/FDC3#2270) and why the others have not.
AI Governance Framework (finos/ai-governance-framework)¶
- Fixed in upstream PR #380: eight risk files formerly lost their
related_riskslist to a YAML comment. Indocs/_risks/the lastuk-regulations_referencesentry's inline# commenthas no newline before the followingrelated_risks:key, so YAML folds the key into the comment and the strayri-Ntokens land inuk-regulations_referencesas bogus reference keys (19 unresolvable references). Files: the seven risks whose parser test entry listsuk-regulationskeys of the formri-N. Fix: a newline. Pinned inservers/aigf/tests/test_parser.pyasEXPECTED_UNRESOLVED_REFSon the older snapshot; the current pin is empty after the upstream fix. docs/_data/references/holds 13 datasets plus aREADME.md; documentation elsewhere counts 14.
Common Domain Model (finos/common-domain-model, Maven cdm-json-schema)¶
These were found against CDM 7.2.0 and 6.27.0 and are written as observed then. The vendored
content moved to 7.4.0 and 6.29.0 on 2026-10-04 and to 7.5.0 on 2026-10-05.
The current primary schema is 7.8.0 and the legacy schema is 6.30.0, both sourced
from the official Maven Central releases on 2026-10-25. Known issues remain
covered by pinned tests; if an upstream fix changes behavior, update the
corresponding finding and assertion together. Finding 9
concerns the finos-cdm 7.2.0 package and was not re-tested.
- Rosetta basic-type names leak into JSON Schema
type. Eight 7.2.0 schema files emit{"type": "BusinessCenter"}or{"type": "NonNegativeNumber"}, which are not JSON Schema types and no schema file defines them; a strict Draft 4 validator raisesUnknownType. Worked around at load time by dropping the bogus keyword. Generator: REGnosys/rosetta-code-generatorsjson-schema. - Two 7.2.0 enum schema files contain raw control characters in descriptions
(
cdm-legaldocumentation-csa-CollateralAssetDefinitionsEnum,cdm-product-collateral-RatingPriorityResolutionEnum); strict JSON parsers reject them. - Non-standard
$anchorat the top level of every schema file (used to carry the namespace). Harmless to Draft 4 but stripped for cleanliness. - The published schema and the published samples disagree on required fields. Against
cdm-json-schema 7.2.0, 18 of 28 official 7.2.0
*-func-output.jsonsamples fail only onrequired(ClosedState.activityDate,executionDetails,underlier,dateAdjustments,exerciseNoticeGiver). Either the schema over-declares cardinality relative to the Rune source, or the samples are not fully populated. Pinned inservers/cdm/tests/test_server.py(EXPECTED_VALID,EXPECTED_REQUIRED_MISSES). cdm-json-schema-6.27.0.zipon Maven Central is a gzipped tar, not a zip, despite the extension andapplication/zipcontent type. The sync script detects the magic bytes.- The JSON Schema models the legacy JSON shape only. CDM 7 documents use the Rune JSON
shape (
@type,@key,@ref,@scheme/@data) and cannot be validated with the published schema as-is. finos-mcp normalises Rune JSON into the legacy shape, directed by the schema, before validating. A Rune-shape JSON Schema would remove the need. finos-cdm7.2.0 on PyPI is not usable as a validator. Importing a model module directly raises a circularImportErrorthrough the lazyfinos._bundle; importing the bundle first takes about four minutes on a warm cache; andBusinessEvent.rune_deserializethen rejects CDM's own 7.2.0 samples withInput should be Noneon typed fields (instruction[].primitiveInstruction.split,after[].trade), which suggests field annotations resolve toNonein the generated models. finos-mcp therefore does not depend on it.- One legacy 6.27.0 sample contains a raw control character and needs lenient JSON parsing.
FDC3 (finos/FDC3)¶
- The intent-to-context mapping is not machine-readable. It exists only as
## Possible Contextsbullet lists inwebsite/docs/intents/ref/*.md;Intents.tsandstandard intents.jsoncarry names only. finos-mcp generatesintents.jsonfrom the markdown with a drift test. A checked-in JSON table upstream would help every consumer. fdc3.actionreferences the API schema package.action.schema.json$refs../api/api.schema.json#/definitions/AppIdentifier, so the context schemas are not self-contained; validating anfdc3.actionneeds the API schemas too. Reported as a structuredreferenceissue.security.user.schema.jsonhas an$idending inuser.schema.json, unlike every other file whose$idmatches its filename (main branch only).- Public claims that FDC3 3.0 "adds MCP integration" are not reflected in the repository or
the 3.0 announcement; 3.0 is at
3.0.0-alpha.2. StartChatandSendChatMessagereturn a chat room only in their example code. Both reference pages readconst chatRoom = ... getResult()in the example, but neither declares a result the wayViewChatandCreateInteractiondo (no "SHOULD return context as a result" and no output section). finos-mcp reports no result for them, because the specification text states none; a consumer cannot tell whetherfdc3.chat.roomis guaranteed. Pinned by a test. Reported as finos/FDC3#2270.